屬性:@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
麼?
有點混亂, 求解答...
。 。 。
大括號裡面
self.dataArr = @[]
只會調同setter 所以沒問題,但是return self.dataArr; 是會調用的getter的,造成死循環你可以自己log或者打斷點跟踪下就知道了
適合的教程