クラスAがあると:オーバーライド@propertyセッターと無限ループ
@interface ClassA : NSObject {
}
@property (nonatomic, assign) id prop1;
@end
@implementation
@synthesize prop1;
@end
その後、私は、サブクラス
@interface ClassB : ClassA {
}
@end
@implementation
- (id)init {
self = [super init];
if (self) {
}
return self;
}
//This is infinite loop
- (void) setProp1:(id)aProp
{
self.prop1 = aProp;
}
@end
を持っているとClassBのからsetProp1は[ClassBのsetProp1ます。val]呼び出すので、これは無限ループですクラスB内から。
私はすでに[スーパーsetProp1]通話を試みたが、@propertyを上書きし、上書きされたセッターの内側に値を割り当てるには、どのようにこの
ましたか? ClassAを変更できないとしましょう。
"私はすでに[super setProp1]を呼び出してみましたが、これは..."なにが問題だったの? 'super'はここで正しいです。 –
スーパーのスーパーチェンジ値のみ。 self.prop1はnullで、super.prop1は値を持ちます。self-> prop1(Shermが示唆するように) – Marcin
self.prop1とsuper.prop1は間違いなく別の値を返すべきではありません。ゲッターメソッドもオーバーライドしていますか? –