什么会导致我(强烈)声明的财产在我背后变为零?

Ste*_*eve 9 objective-c automatic-ref-counting

使用ARC,我有一个以下形式的声明属性:

@property (nonatomic, strong) MyClass * instanceName;
Run Code Online (Sandbox Code Playgroud)

我在三个地方设置了这个属性 - 我在所有三个地方添加了断点.

我在很多地方引用了这个属性.

当我单步执行代码时,属性将被设置,并且调用属性的其他两个位置都不会被调用.(正如预期的那样).

但是,在某些时候,此属性的值变为零.

我已经为我的类添加了一个dealloc方法,带有一个NSLog和一个断点 - 但它永远不会被调用(所以它不像是被视为归零弱引用).

令我感到困惑的是,为什么我的"强势"财产会在没有让我这么做的情况下成为零.

任何意见,将不胜感激.

谢谢

Rob*_*ier 9

简单的答案是,你导致它这样做.你根本就不知道怎么做.

在访问ivar之后的某个时刻,它应该出现在调试窗口中,前面有一个"i".右键单击它并选择"Watch ..."每次修改内存时都会得到一个断点.