在appdelegate的dealloc中释放ivars是否有意义?

时间:2010-08-11 09:00:11

标签: iphone objective-c delegates memory-management

我知道在dealloc方法中释放appdelegate的ivars可能是一个很好的做法,但实际上,它是否有任何意义?

据我所知,当应用程序运行时,iPhone应用程序的appdelegate将存在内存中,并且当它关闭时,所有内存都将被释放。

谢谢

1 个答案:

答案 0 :(得分:1)

良好的记忆管理应该是一种习惯。你越需要考虑何时何地适用,你就越有可能犯错误。这可能足以让它独自完成。

翻转问题 - 添加这些版本会导致什么损失?添加它们真的很费力吗?

还有一些问题:

  • 如果架构稍微改变并且应用程序委托提前发布,会发生什么?
  • 如果其中一个被释放的对象在其dealloc中进行额外的清理(例如保存其状态)该怎么办(暂时忽略这是否是个好主意)。
  • 当您构建和制作时会产生噪音吗?分析

就个人而言,我会做所有的app委托发布。你可能会认为它不值得 - 但我希望我给你一些理由不予考虑。

[更新]

我之后发表了关于可能相关的替代内存管理技术的博客 - 使用(通过Objective-C ++)smart pointers