我应该在应用程序委托中实现dealloc吗?
问题描述:
我应该在应用程序委托中实现dealloc并在那里发布我的ivars?据我了解,当一个应用程序终止时,与它相关的所有内存都会自动释放。所以基本上,终止时不需要发布任何ivars。我应该在应用程序委托中实现dealloc吗?
我发现这里已经是这个问题:Does it make any sense to release ivars in appdelegate's dealloc?
答案之一说,对象可能在dealloc的清理代码,所以你可能想自己在结束时释放的ivars。但是当我将NSLog放入应用程序委托的dealloc时,它永远不会被调用。我的假设是没有用处,所以我甚至不需要实施它,我是对的吗?
答
在未来的iOS版本中可能有必要。为了向前兼容,并且由于Apple似乎推荐它,我会发布这些ivars。
答
你是对的,你不需要在dealloc中释放你的ivars(尽管SDK附带的示例模板确实有一个-dealloc)。操作系统将回收与您相关的任何内存应用程序。如果有的话,它只会增加少量的开销。另外,据我所知,环境没有任何保证,你的应用程序委托中的-dealloc会被调用,所以它可能永远不会执行。