关于ARC中的self.view=nil



我只是想知道ARC.中的self.view=nil

  1. 当设置self.view=nil时,self.view会自动释放吗
  2. 当设置self.view=nil时,所有子视图将自动为nil并释放

感谢

1)是的,假设不存在对它的其他强引用(这是一个非常大的if,可能会出现在意外的地方)。唯一可以保证的是,它的保留计数将减少1。

2) 如果您的视图通过满足上述条件而被设置为解除分配,则子视图将自动释放(其保留计数将递减1)。假设不存在对它们的其他引用(参见第1点),它们也将被释放。

一切都取决于对对象的强引用的数量。理解这一点至关重要。当且仅当对象的保留计数达到零时,对象才会被释放。你不能直接控制ARC,但它仍然非常相关。

这取决于同一视图(对象为niled)是否被其他对象使用。ARC为您进行对象引用计数。因此,如果同一个对象被强引用,ARC应该保留它。因此,如果没有其他人引用self.view=nil对象,则会去掉self.view.

然而,我不确定所有子视图会发生什么。我也有同感。

最新更新