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
ですか?