我有一个内部使用 ivar 的类。我不想在类的公共接口(标头)中公开 ivar,但我在实现文件中声明并使用它,如下所示:
//--------SomeClass.h--------------
@interface SomeClass : NSObject
@end
//--------SomeClass.m--------------
@implementation SomeClass ()
{
@protected
NSMutableDictionary *_privateData;
}
@implementation SomeClass
// ...
@end
然后在 SomeClass 的子类中,我尝试访问 _privateData:
//--------SomeSubClass.m--------------
@implementation SomeSubClass
// ...
- (void)someMethod {
NSLog(@"%@", _privateData); // NOPE
NSLog(@"%@", self->_privateData); // NOPE
NSLog(@"%@", super->_privateData); // NOPE
}
// ...
@end
但我不能。有没有办法做到这一点?