objective-c - 在一个父类中 self 是其子类的对象.
黄舟
黄舟 2017-05-02 09:18:51
0
2
707


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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(2)
某草草

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

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

いいねを押す +0
仅有的幸福

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート