如何在Objective-C中使用finalize方法?

时间:2010-07-31 07:56:37

标签: iphone objective-c garbage-collection

如何在Objective-C中调用-finalize方法进行垃圾回收?

3 个答案:

答案 0 :(得分:9)

iOS does not offer garbage collection

  

在iOS中,您始终使用内存管理模型来保留,释放和自动释放对象。 iOS中不支持垃圾收集。

答案 1 :(得分:0)

正如亚历克斯雷诺兹告诉你的那样,iOS中确实存在(也许永远不会有)垃圾收集。除了NextStep-object层次结构中的那个(你知道名字中包含NS的所有类吗?)之外还有一个名为dealloc(http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/dealloc)的方法。它可以覆盖它(如果有的话,应该这样做)来清理。例如,您应该释放实例持有的其他对象。

但是不要错过“你永远不会直接发送dealloc消息”!

问候

答案 2 :(得分:0)

有自动引用计数(ARC)代表我们进行内存管理。我们不必使用retain,像这样的语句一样发布它负责这些事情的对象....

但是没有像c#那样的专用垃圾收集器。

以下是它的工作原理:

当启用ARC时,编译器会像这些语句一样添加retain,release,autolease。

但是如果我们使用ARC那么我们就不能手动释放任何对象,这是这种方法的唯一缺点..