假设我有两个类,即类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/

10-09 20:31