小编jep*_*ers的帖子

覆盖@property setter和无限循环

有A类:

@interface ClassA : NSObject {
}
@property (nonatomic, assign) id prop1;
@end

@implementation
@synthesize prop1;
@end
Run Code Online (Sandbox Code Playgroud)

然后我有子类

@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
Run Code Online (Sandbox Code Playgroud)

这是无限循环,因为ClassB中的setProp1从ClassB中调用[ClassB setProp1:val].

我已经尝试过调用[super setProp1]但是这个

如何覆盖@property并在覆盖的setter中分配值?我们假设我无法修改ClassA.

overriding subclass objective-c ios

38
推荐指数
4
解决办法
3万
查看次数

标签 统计

ios ×1

objective-c ×1

overriding ×1

subclass ×1