我有一个带有 BOOL 属性(不是指针)的视图控制器,我认为它是 NO 或者只是垃圾,好像它没有在 viewDidLoad 中分配。BOOL 在需要时被分配。当视图控制器被释放(我正在使用 arc)并稍后重新创建时,如果该 BOOL 的先前实例值为 YES(在 VC 被释放之前),那么新实例 BOOL 变量的初始值也将为 YES。发现这很奇怪。
- 声明的属性(非原子,分配)
- 它不是在 viewDidLoad 中设置的,而是在 action 方法的其他地方设置的
- 在 dealloc 中没有改变
我知道这很奇怪,同时我在 viewDidLoad 中设置了适当的默认值。
更新
请记住,这是在 BOOL 作为 iVar 时发生的(我将其更改为属性),并且在分配 BOOL 之前进行了比较。我把奇怪的行为归结为这一点。