Objective-Cの場合とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > Objective-Cの場合の意味・解説 

Objective-Cの場合

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/02 03:50 UTC 版)

名前修飾」の記事における「Objective-Cの場合」の解説

Objective-Cメソッドは、本質的に種類分けられる一つクラス(「静的」)メソッドで、もう一つはインスタンスメソッドである。Objective-Cでのメソッド宣言次のような形式である。 + method name: argument name1:parameter1 ...- method name: argument name1:parameter1 ... クラスメソッドは + で示される。インスタンスメソッドは - で示される典型的なクラスメソッド宣言は、次のうになるだろう + (id) initWithX: (int) number andY: (int) number;+ (id) new; インスタンスメソッドならば、次のようである - (id) value;- (id) setValue: (id) new_value; それぞれのメソッド宣言特有の内部表現持っているコンパイル時にメソッド名は次のスキームによって変換される。クラスメソッドでは _c_Class_methodname_name1_name2_ ... となり、インスタンスメソッドでは _i_Class_methodname_name1_name2_ ... となる。 Objective-Cコロン下線変換される。そこで、Point クラス属するクラスメソッド + (id) initWithX: (int) number andY: (int) number; は次のように変換されるだろう_c_Point_initWithX_andY_。同じクラス属するインスタンスメソッド - (id) value; は _i_Point_value となる。 クラスの各メソッドこのようにラベルされるが、全てのメソッドこのように表現され場合、あるクラス応答すべきメソッド探し出すのは面倒な作業となりうる。そのため、各々メソッド整数のようなシンボル一意割り当てるこのようなシンボルは「セレクタ」として知られるObjective-Cでは、プログラマセレクタ直接管理することができる — Objective-Cではそれらに特別の型を与えている — SELコンパイル中に、(_i_Point_valueのような文字による表現からセレクタSEL型)へのマップ作成される文字による表現操作するよりもセレクタ管理する方がメソッド効果的に扱うことができる。セレクタマッチするのはメソッドの名前だけであり、それが属すクラスではないということ注意してほしい。クラス異なれば同じ名前のメソッドでも実装異なことがあるこのためメソッド実装にも特別の識別子与えられる実装ポインタ (implementation pointer) と呼ばれIMP 型を持つ。 オブジェクトメッセージを送ると、それはコンパイラによって、 id objc_msgSend(id receiver, SEL selector, ...) 関数ないしはその従兄弟のどれかに対す呼び出しとしてエンコードされる。ここで、receiverはそのメッセージ受け手であり、SELによって呼び出されるメソッドが決まる。各々クラスはそれ自身の表を持っており、セレクタ実装メソッド実体存在するメモリ空間指定する実装ポインタ — との相互対照ができるようになっている。また別の表にはクラスとインスタンスメソッドが記録されるSELからIMPへの対照表格納されることはさておき関数本質的に無名である。 あるセレクタ対すSELの値はクラスによって変わることがなく、多態性実現している。 Objective-C実行環境メソッド引数返り値の型についての情報保持しているが、メソッドの名前の一部として保持されるわけではなくクラスによって変化しうる。 Objective-C名前空間サポートしないので、クラス名修飾する要はない。

※この「Objective-Cの場合」の解説は、「名前修飾」の解説の一部です。
「Objective-Cの場合」を含む「名前修飾」の記事については、「名前修飾」の概要を参照ください。

ウィキペディア小見出し辞書の「Objective-Cの場合」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Objective-Cの場合」の関連用語

Objective-Cの場合のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Objective-Cの場合のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの名前修飾 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS