繁体   English   中英

为什么在viewDidLoad中初始化的变量不能在Objective-C中保留值?

[英]Why do variables initialized in viewDidLoad not retain value in Objective-C?

我写了一个叫做Location的类,其中只包含一些字符串。 我在视图控制器中使用该类的两个实例,当我在viewDidLoad中初始化两个变量时,它们对于该方法正常工作,但是当我稍后尝试使用它们时,它们为null。 我将它们设置为保留属性。 我已经测试了它们,并且知道它们已为viewDidLoad初始化(我在视图中使用了它们的字段)。 我是否必须在Location类中做一些特别的事情以确保它们不会被释放? 当我用另一种方法重新初始化它们时,一切运行顺利。

在viewDidLoad中正确初始化的实例变量通常应保留值,就像在任何其他方法中一样。 编码错误可能会导致您正在描述的问题,例如,如果viewDidLoad中的局部变量隐藏了名称相同的实例变量。

您(或事件循环)可能在viewDidLoad完成后释放了您正在初始化的对象,因为它们是自动释放的。 为避免这种情况,请在类中使用“ retain”属性来使问题中的变量具有属性,并在dealloc上将其设置为nil。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM