我应该在我的应用代理中实现dealloc吗?

时间:2011-02-27 10:35:11

标签: iphone objective-c cocoa-touch memory-management uikit

我应该在我的app委托中实现dealloc并在那里发布我的ivars吗?据我了解,当应用程序终止时,与其关联的所有内存都会自动释放。基本上,没有必要在终止时自行发布任何ivars。

我已经在这里找到了这个问题:Does it make any sense to release ivars in appdelegate's dealloc?

其中一个答案表示对象可能在dealloc中有清理代码,因此您可能希望在终止时自行释放ivars。但是当我在我的app委托的dealloc中放置一个NSLog时,它从未被调用过。我的假设是没有任何用处,所以我甚至不必实现它,我是对的吗?

2 个答案:

答案 0 :(得分:4)

在将来的iOS版本中可能有必要。为了向前兼容,并且由于Apple似乎推荐它,我会发布那些ivars。

答案 1 :(得分:1)

你是对的,你不需要在dealloc中发布你的ivars(SDK附带的示例模板确实有-dealloc)。操作系统将回收与您的应用程序相关的任何内存。如果有的话,它只会增加少量的开销。另外,据我所知,环境没有保证你的app委托中的-dealloc会被调用,所以它甚至可能永远不会被执行。