Переопределить установщик @property и бесконечный цикл

Есть класс A с:

@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

, и это бесконечный цикл, потому что setProp1 из ClassB вызывает [ClassB setProp1: val] из ClassB.

Я уже пробовал вызвать [super setProp1], но это

Как перезаписать @property и присвоить значение внутри перезаписанного сеттера? Предположим, я не могу изменить ClassA.

38
задан jephers 23 July 2011 в 16:01
поделиться