objective-c - 关于getter方法中使用self引发死循环的问题?
仅有的幸福
仅有的幸福 2017-05-02 09:29:01
0
1
611
  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)
小葫芦

。 。 。
中括弧内はセッターを調整するだけなので問題はありませんが、 return self.dataArr; はゲッターを呼び出して無限ループを引き起こしますself.dataArr = @[] 自分でログを記録するか、ブレークポイントを追跡して確認することができます
適切なチュートリアル

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!