私の知る限り、これはスーパークラスへのポインターです。これはスーパークラスに組み込まれており、実行時に動的に把握されるわけではありません。詳しく教えていただきたいです...
誰?
私の知る限り、これはスーパークラスへのポインターです。これはスーパークラスに組み込まれており、実行時に動的に把握されるわけではありません。詳しく教えていただきたいです...
誰?
基本的に、現在のクラスのスーパークラスの実装を使用できます。
Objective -C ランタイムの詳細については、次を参照してください。
[super message]
次の意味があります。
メソッド呼び出しが検出されると、コンパイラは関数 objc_msgSend、objc_msgSend_stret、objc_msgSendSuper、または objc_msgSendSuper_stret のいずれかへの呼び出しを生成します。(super キーワードを使用して) オブジェクトのスーパークラスに送信されるメッセージは、objc_msgSendSuper を使用して送信されます。その他のメッセージは、objc_msgSend を使用して送信されます。戻り値としてデータ構造を持つメソッドは、objc_msgSendSuper_stret および objc_msgSend_stret を使用して送信されます。
はい、静的であり、実行時に決定されません。
これはと同等のキーワードですself
が、スーパークラスのメソッドテーブルを使用してメッセージディスパッチ検索を開始します。
super
クラスへのポインタではありません。Superはですself
が、メッセージ式で使用される場合、「スーパークラスのメソッドテーブルで始まる実装を探す」ことを意味します。
メタ クラスとは何かに関するこれらのブログ投稿 、サブクラスとクラスとメタクラスを取得すると、これの内部についての洞察が得られる場合があります。