ios - 首先调用哪种dealloc方法?

标签 ios objective-c automatic-ref-counting dealloc code-design

假设我有两个类,即类A和B。按组成,类A具有类B的实例。换句话说,类A是创建类B的实例的类。

如果我处于类A的对象的最终发行版中,那么将首先执行类B的dealloc方法吗?总是这样吗?是否会有在B类之前执行A类的解除分配的情况?

我试图了解将执行类的dealloc方法的顺序。

(这是在ARC中)

最佳答案

如果删除(或实际上删除对它的最后一个强引用),则将释放A类的实例。在ARC下,作为其重分配的一部分,它将删除对B类实例的强引用,如果没有其他强引用,则将对其进行重分配。

因此,首先调用A的dealloc方法。

如果您要按照此操作顺序执行任何操作,那将是一种非常糟糕的代码味道。

关于ios - 首先调用哪种dealloc方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156299/

相关文章:

ios - 在函数声明中找不到 GTMAppAuth 'presentingViewController'

ios - 性能 - NSValue 中的结构与容器对象

objective-c - 简单的文档应用程序,在 Mac OS X 10.7 Lion 中的 "revert to saved"上引发异常

iphone - 如何为特定文件添加 ARC?

objective-c - 从 5.1 更改部署目标时构建失败

ios - 仅在离开和返回时删除/添加单元格

javascript - 如何在 UIWebView 中更改用户的选择范围?

ios - xcode 6 中的 Apple Mach-O 链接器错误

iphone - 用圆弧覆盖设定器

IOS - 从 Ipod 访问音频流、暂停和更改音量