検索

ホームページ  >  に質問  >  本文

Objective-c - getter メソッドで self を使用すると無限ループが発生する問題について?

  1. 属性:
    @property (strong, nonatomic) NSArray *dataArr;

  2. getter メソッドを書き換えます (コードは遅延読み込みに関するものですが、これは重要ではありません)

リーリー

今わかっていることは、self.dataArr を使用すると属性の getter方法setter方法

が呼び出されるということです。

だから、括弧内の if は使用できないと思います self.dataArr それ以外の場合は無限ループになります

でも、なぜ if 中括弧で self.dataArr を使用できるのかわかりません。

中括弧は代入なので、setter方法 だけが呼び出されるからでしょうか?

返品後にself.dataArrと書いてもいいですか?

少しわかりにくいので、いくつか答えてください...

仅有的幸福仅有的幸福2857日前695

全員に返信(1)返信します

  • 高洛峰

    高洛峰2017-05-02 09:31:01

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

    返事
    0
  • キャンセル返事