【问题标题】:Should I implement dealloc in my app delegate?我应该在我的应用程序委托中实现 dealloc 吗?
【发布时间】:2011-02-27 10:35:10
【问题描述】:

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

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

其中一个答案说对象可能在 dealloc 中有清理代码,因此您可能希望在终止时自己释放 ivars。但是当我在我的应用程序委托的 dealloc 中放置一个 NSLog 时,它永远不会被调用。我的假设是它根本没有用,所以我什至不必实现它,对吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多