Aスーパークラスのメソッドをにサブクラス化して、新しい機能で拡張したいと思いBます。インスタンス変数はデフォルトでに設定されているため@protected、それらへのアクセスは問題ありません。xただし、メソッドで行ったインスタンス変数への変更Aは反映されませんB。その逆も同様です。
@interface A : NSObject {
X *x;
}
- initWithX:(X *)anX;
@end
@implementation A
- initWithX:(X *)anX
{
assert(anX != nil);
if (self = [super init]) {
x = anX;
}
assert(self != nil);
return self;
}
@end
@interface B : A
@end
@implementation B
- initWithX:(X *)anX
{
assert(anX != nil);
if (self = [super initWithX:anX]) {
assert(x != nil); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< FAILS
}
return self;
}
@end
xとの間Aで変数を共有するにはどうすればよいBですか?