我有以下方法:

-(NSMutableArray *)someArray{ // line 1
    if(self.someArray == nil){ // line 2
        self.someArray = [[NSMutableArray alloc]init];
    }
    return self.someArray;
}

我在非ARC中有此功能,并且工作正常:如果第2行中的self.someArraynil,则继续进行实例化。

但是,在切换到ARC之后,当它到达第2行时,它又回到第1行,并且循环继续进行。

任何帮助将不胜感激。
谢谢。

最佳答案

正确的形式是

@synthesize someArray = _someArray;
- (NSMutableArray *)someArray {
    if (!_someArray) {
        _someArray = [NSMutableArray array];
    }
    return _someArray;
}

关于ios - objective-c :转换为ARC后的无限 setter/getter 方法循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14783727/

10-09 07:18