Objective-Cで継承がどのように機能するかは誰にも分かりますか?継承objective-c
私はクラスAを継承するクラスBを持っていると言います。クラスBのプロパティとメソッドにアクセスできるように、これらの2つのクラス間の接着は何ですか?
Objective-Cで継承がどのように機能するかは誰にも分かりますか?継承objective-c
私はクラスAを継承するクラスBを持っていると言います。クラスBのプロパティとメソッドにアクセスできるように、これらの2つのクラス間の接着は何ですか?
isa
。
isa
は、実行時の型を識別し、動的な「グルー」を参照します(vtable参照)。 isa
のため、ランタイムは、メッセージの送信時に実行するメソッドと、タイプがself
であることを認識しています(または判断できる)。
インスタンスが作成されると、isa
が割り当てられます。
他の主な寄稿者はもちろん、コンパイラです。コンパイラは、あなたが下位レベルに降下したときに引き継ぎます。インスタンス変数に直接アクセスし、メソッドを定義します。オブジェクトの作成時およびメッセージング時に、コンパイラが追加する呼び出しがいくつかあります。
これはSampleViewControllerはのUIViewControllerを継承し、あなたがのUIViewControllerのすべてのプロパティ/メソッドにアクセスすることができるという事実を特定し、次のコード
@interface SampleViewController : UIViewController{}
を理解してください。
私はジャスティンがダイナミックな「接着剤」について述べたことに同意します。
「接着剤」は何を意味しますか?そして、あなたはオブジェクト指向/継承自体をよく理解していますか?つまり、すでに別のオブジェクト指向言語で作業していますか? – DarkDust
メッセージについては、こちらでよく説明しています。https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html#//apple_ref/doc/uid/TP40008048- CH104-TPXREF134 – Monolo