属性: @property (strong, nonatomic) NSArray *dataArr;
重写getter方法 (代码关于懒加载, 不过这个不是重点)
- (NSArray *)dataArr{
//1. 判断是否为空
if(_dataArr == nil){ //不能写self.dataArr
self.dataArr = @[ //可以写self.dataArr
.........
];
}
return _dataArr;
}
我现在知道的东西是, 用self.dataArr
会调用该属性的getter方法
和setter方法
所以我觉得if小括号里的不能用self.dataArr
否则会死循环
但我不知道为什么if大括号里却可以用self.dataArr
?
难道是大括号里的是赋值, 就只会调用setter方法
?
还有return后面能写self.dataArr
么?
有点混乱, 求解答...
高洛峰2017-05-02 09:31:01
. . .
중괄호 안self.dataArr = @[]
은 setter만 호출하므로 문제가 없지만 return self.dataArr은 getter를 호출하여 무한 루프를 발생시킵니다.
직접 기록하거나 중단점을 추적할 수 있습니다.
적절한 튜토리얼