検索

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

objective-c - OC 在初始化方法或者是 dealloc 中最好不要使用属性,为什么?

看过好几次这种描述:在初始化方法或者是 dealloc 中最好不要使用属性,因为无法确定 self 到底是不是确实调用的是你想要的实例,这个是为什么呢?

習慣沉默習慣沉默2757日前686

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

  • 漂亮男人

    漂亮男人2017-05-02 09:31:36

    どこで見ましたか?それらはすべて過去のもので、ARC には制限はなく、好きなように使用できます。

    昔の手動メモリ管理では、プロパティの呼び出しには参照カウンターの追加と減算が含まれ、self = [super ...] 初始化的对象不一定是当前类的对象,可能是“变体”或私有类(objc里的class有 classmetaclass 的区别),所以在你不知道属性 setter 方法里到底是怎么加减引用计数器的情况下,你就只针对 ivar単に保持して解放するだけでした。

    リーリー

    retain(copy,new)とreleaseはペアで表示されます

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:31:36

    デリゲートなどの循環参照が生成され、その後決して解放されないためです

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:31:36

    注意が必要なカテゴリ (Category)、セッター、ゲッター、KVO などがあるためです
    最も重要なことは、分類のため、文法は分類の属性とメソッドを呼び出すことができますが、_ は呼び出すことができません。仕事、注意が必要です

    返事
    0
  • キャンセル返事