nil
的重要性是什么意义?viewDidUnload
的情况下才有意义吗?我们不需要将其他属性(不是IBOulets
)设置为IBOulets
吗?nil
并且没有观察到任何后果。非常感谢帮助。
答案 0 :(得分:1)
在viewDidUnload中将IBOutlets设置为nil告诉编译器在内存警告上释放出口。因为内存警告..viewDidUnload和视图控制器的didReceiveMemoryWarning被调用..通常在ViewDidUnload中,IBOutlets被设置为nil和didReceiveMemoryWarning属性或者对象被释放。在这种情况下,内存重新获得,因此您的应用程序可以继续运行,否则连续池化会导致内存不足导致崩溃
答案 1 :(得分:0)
在网上阅读了很多文章并在stackoverflow.com上经历了类似的问题后,我达成了以下理解:
viewDidUnload
。
我们应该在方法中将这些属性设置为nil,这些属性在viewDidLoad
中重新实现。几乎所有IBOutlet组件都属于该类别。因此,我们更好地将IBOutlets声明为方法中的nil。如果不这样做会导致持续池化,并可能导致未来因内存不足而导致崩溃(时间,应用程序继续运行)。
我还读到我们不应该像NSString那样忽略类的实例(可能导致崩溃),这根据我的经验是正确的。但原因我不知道。
每当我开始了解更多相关信息时,我会不断更新这个答案。
感谢。