无法从子类访问合成的 iVar



>我有以下代码,它给出了编译器错误"Instance Variable '_someBool' is prive"

@interface Foo: NSObject
@property (assign) BOOL someBool;
@end
@implementation Foo
@end
@interface Bar: Foo
@end
@implementation Bar
- (BOOL)someBool {
// subclass specific getter logic
return _someBool;
}
@end

为什么我无法访问继承的属性的存储? 覆盖此getter的正确方法是什么?

getter 只是一个方法,如果您希望覆盖一个方法并调用其原始实现,请使用super

- (BOOL)someBool
{
// subclass specific getter logic
return [super someBool];
}

为什么我无法访问继承的属性的存储?

它是私人的。如果您确实想从子类访问存储,则通过声明@protected实例变量并使用@synthesise property=variable来指定您自己的存储。使用super可能更好。

相关内容

  • 没有找到相关文章

最新更新