検索

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

objective-c - 在一个父类中 self 是其子类的对象.


在一个类的父类中什么情况下 self 可以表示为它的子类的对象?self 不应该是在哪个类中表示那个类的对象吗?

黄舟黄舟2758日前681

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

  • 某草草

    某草草2017-05-02 09:20:51

    iOS の self キーワードには多くの意味と規則がありますが、それがどのクラスのオブジェクトを参照するかを意味するものではありません。まず、この問題を修正してください。 Self は現在のクラスのオブジェクトを表し、質問で示されている図は、現在のクラスとすべての親の場合に [self class] を呼び出していると理解できます。クラスがこのメソッドをオーバーライドしていない場合、NSObject のクラス メソッドが呼び出されます。

    さらに、OC の self キーワードは、スコープごとに異なる意味と機能を持ちます。インスタンス メソッドでは、self はオブジェクトの最初のアドレスを表しますが、クラス メソッドでは、self は現在のクラスを表します。OC では、Class もオブジェクトなので、self は異なります。

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-02 09:20:51

    そのオブジェクトが実際にサブクラスオブジェクトである場合

    返事
    0
  • キャンセル返事