如何在Objective-C中调用-finalize
方法进行垃圾回收?
答案 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那么我们就不能手动释放任何对象,这是这种方法的唯一缺点..