这是我的第一篇文章;这个网站一直是非常宝贵的资源。在Objective-C中继承访问器
我对objective-c相当陌生,所以请耐心等待。
所以我有一个基本类与几个属性,我想要“私人”,所以我让他们只读。要明确,我不希望它们在外部可变,但我不想在这个类中使用'set'访问器。所以......
// .h file
@interface Vehicle
@property (nonatomic, readonly) int speed;
@end
而且我反复类别接口块内的财产申报,使访问者在这个类
// .m file
//Private properties and methods
@interface Vehicle()
@property (nonatomic, readwrite) int speed;
@end
@implementation
@synthesize speed = _speed;
- (void) someMethod {
[self setSpeed:10]; // Works fine
}
@end
可写,但现在,如果我继承这个类的派生类中不再有设置访问器方法(setSpeed在我的情况)。我是否需要再次合成?看起来这样会打败继承的目的。我知道我可以直接修改实例变量(_speed = 10;),而不是。我相信我的理解有问题。谢谢!
// Example
@interface Ship : Vehicle
@end
@implementation
- (void) someOtherMethod {
[self setSpeed: 2]; // DOES NOT WORK, would like it to
}
@end
我猜我问的是我如何继承私有@interface someName()类.. – Patrick 2012-04-13 15:44:24
我猜测你可以通过一个仅用于派生类的头来共享私有接口包括。 (我自己没有尝试过这个,因此评论而不是答案。) – 2012-04-13 15:48:50