objective-c - 關於getter方法中使用self引發死循環的問題?
仅有的幸福
仅有的幸福 2017-05-02 09:29:01
0
1
574
  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學習者快速成長!