我只是注意到,出于某种原因,我似乎没有在我的 iOS 7 项目中自动创建下划线 iVar,我想知道为什么会这样。我的设置:
我的类.h
@property (readonly) NSNumber *aNumber;
我的班级.m
@interface MyClass ()
@property (readwrite, strong) NSNumber *aNumber;
@end
@implementation MyClass
(...)
- (NSNumber *)aNumber {
return _aNumber;
}
- (void)setANumber:(NSNumber *)aNumber {
_aNumber = aNumber;
}
@end
这导致Use of undeclared identifier: '_aNumber'。
为什么呢?我以为下划线 iVar 总是自动合成的?是因为我使用的类扩展吗?如果我把@synthesize aNumber = _aNumber;
它(显然)工作。