我只是想知道ARC.中的self.view=nil
- 当设置self.view=nil时,self.view会自动释放吗
- 当设置self.view=nil时,所有子视图将自动为nil并释放
感谢
1)是的,假设不存在对它的其他强引用(这是一个非常大的if,可能会出现在意外的地方)。唯一可以保证的是,它的保留计数将减少1。
2) 如果您的视图通过满足上述条件而被设置为解除分配,则子视图将自动释放(其保留计数将递减1)。假设不存在对它们的其他引用(参见第1点),它们也将被释放。
一切都取决于对对象的强引用的数量。理解这一点至关重要。当且仅当对象的保留计数达到零时,对象才会被释放。你不能直接控制ARC,但它仍然非常相关。
这取决于同一视图(对象为niled)是否被其他对象使用。ARC为您进行对象引用计数。因此,如果同一个对象被强引用,ARC应该保留它。因此,如果没有其他人引用self.view=nil对象,则会去掉self.view.
然而,我不确定所有子视图会发生什么。我也有同感。