objective-c - 關於getter方法中使用self引發死循環的問題?
仅有的幸福
仅有的幸福 2017-05-02 09:29:01
0
1
650
  1. 屬性:
    @property (strong, nonatomic) NSArray *dataArr;

  2. 重寫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麼?

有點混亂, 求解答...

仅有的幸福
仅有的幸福

全部回覆(1)
小葫芦

。 。 。
大括號裡面self.dataArr = @[]只會調同setter 所以沒問題,但是return self.dataArr; 是會調用的getter的,造成死循環
你可以自己log或者打斷點跟踪下就知道了
適合的教程

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!