ios与自动释放池解除锁定



我的问题中可能有术语错误,但这是我最好的尝试:

我的ios应用程序的CCD_ 1已启用CCD_。因此,我不会随意释放内存,但它似乎是在GC拾取器上。

我在为已从super视图中删除的特定UIView运行dealloc时遇到问题。这正常吗?

ARC所做的就是确保在适当的时间发送保留和释放消息(当您开始和停止引用对象时)。没有GC——解除锁定与以前完全一样——也就是说,当保留计数为0时,它们就完成了。

自动释放池用于调用自动释放而不是释放。这意味着通过将释放调用放入由自动释放池管理的队列来延迟释放调用——当池耗尽时,队列中的每个对象都会被释放调用

所以,如果你依赖ARC——

  1. 不要自己调用retain、release或autorelease——如果你尝试,你会得到一个构建错误

  2. 使用(强)属性来保留您需要保留在周围的引用

  3. 如果你最终得到了一个循环引用——一个指向强指向后的对象的强指针——那么这一切都会分崩离析——ARC不会释放任何东西。您要么需要将其中一个指针设置为零,要么使其中一个变弱。

将断点放在您认为应该调用dealloc的位置,并检查对象retainCount。使用Leaks仪器找出可能发生的情况。

相关内容

  • 没有找到相关文章

最新更新