0
我發現了一個奇怪的問題。爲什麼一個自動合成的財產的伊娃即使在財產設置後仍保持爲零?
在這個例子中,在iPhone Retina(4英寸)模擬器上使用iOS 7.0的Xcode 5.0.2應該是不可能的。
在UIView子類的屬性被定義爲:
@property (nonatomic, strong) EAGLContext *context;
沒有定製getter或setter。所以應該創建ivar應該是_context
。
似乎伊娃存在,但是當我分配一些伊娃仍然無效。
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
// breakpoint:
// "po [self context]" returns proper object.
// "po _context" returns nil
這怎麼可能?
要排除衝突我重構屬性爲「context123」,但結果相同。 LLDB調試器會說_context123爲零。
我對這個問題的答案會立即出現。這是一個有趣的問題,其他人可能會發現有用的知道。
好的。我剛剛失去了一小時的「神奇」持續零。爲了增加混淆,似乎有可能將有效值從表面上'nil'屬性中複製出來。 – Chris
@openfrog:在允許子類使用ivar的同時修正這個問題的最佳方法是什麼? – moonman239