Objective-C /中排水,释放,dealloc和保留之间的差异

时间:2009-11-02 05:25:59

标签: objective-c memory-management

您好我想知道Objective-C中的drain,release,dealloc和retain之间的区别。

1 个答案:

答案 0 :(得分:23)

  • retain增加对象的引用次数
  • release减少对象的引用
  • 由于与Objective C垃圾收集相关的一些奥秘,
  • drain用于取代NSAutoreleasePool对象的 ONLY 上的释放
  • 一旦对象的retainCount达到0,系统就会调用
  • dealloc。这是你清理对象所拥有的各种东西的地方(比如解构器或终结器)。您应该从不直接调用它,除非在[super dealloc]例程结束时调用dealloc

你真的应该阅读Apple的内存管理documentation

相关问题