我有一个BOOL属性(不是指针)的视图控制器,我认为它会是NO或只是垃圾看起来好像它没有在viewDidLoad中分配。 BOOL在需要时被分配。当视图控制器被取消分配(我正在使用arc)并且稍后重新创建时,如果该BOOL的先前实例值为YES(在VC被释放之前),那么新实例BOOL变量的初始值也将为YES。发现这很奇怪。为什么我的原始类型状态在实例之间被保留?
- 财产申报(非原子,分配)
- 它不是在viewDidLoad中设置,在一个操作方法在其他地方设置
- 在dealloc中不改变
我知道这是奇怪的,同时我已经在viewDidLoad中设置了适当的默认值。
UPDATE
铭记这是与布尔的伊娃(我把它改成一个属性)和比较发生被做了BOOL被分配之前。我将这种奇怪的行为归咎于此。
您的视图控制器是否被延迟加载,然后由父视图控制器保持在加载之间? – 2013-03-19 15:09:38
这是重新创建的父级,因此是层次结构的其余部分。我在dealloc上插入了一个断点,我肯定它与我检查内存地址的实例不一样,此外还有可视化指示:D – BodaciousPie 2013-03-19 15:28:51
奇怪。它是否被声明为静态BOOL? – 2013-03-19 15:46:33