我只是想知道ARC中的self.view = nil。
由于
答案 0 :(得分:0)
这取决于是否某个其他对象正在使用相同的视图(被填充的对象)。 ARC为您执行对象引用计数。因此,如果强烈引用相同的对象,ARC应该保留它。 因此,如果没有其他人引用对象self.view = nil将摆脱self.view。
但我不确定所有子视图会发生什么。我想象同样的事情。
答案 1 :(得分:0)
1)是的,假设没有其他强引用(这是一个非常大的if,这可能出现在意想不到的地方)。唯一保证会发生的事情是它的保留计数会减少1。
2)如果您的视图设置为通过满足上述条件而被解除分配,则子视图将自动释放(其保留计数将减1)。假设他们没有其他参考(见第1点),他们也将被解除分配。
一切都取决于对象的强引用数量。了解这一点绝对至关重要。当且仅当其保留计数达到零时,才会释放对象。从ARC开始,你不能直接控制它,但它仍然非常重要。