2010-08-31 メソッド,セレクタ,メソッドの実装 http://journal.mycom.co.jp/column/objc/018/index.html を激しく参考にさせていただいています.
2010-08-31 メソッド objc メソッドはMethod型で定義され,ランタイムAPIを以下のように追いかけていくと,@objc-class.h typedef struct class-method *Method 同じく@objc-class.h struct class-method { SEL method_name; char *method_types; IMP method_imp; } となってて, メソッド名(セレクタ)を表すSEL型の変数 メソッドへの引数を表すchar型の変数 メソッドの実装部分へのポインタを表すIMP型の変数 で構成される構造体にたどり着く.
2010-08-31 セレクタ objc セレクタはSEL型の変数で表現されてて,objc.hで, typedef struct objc_selector *SEL; と定義されている. objc_selector構造体の定義はなく,Opaque構造体というらしい.
2010-08-31 メソッドの実装 objc メソッドの実装は実際の実装部分へのポインタで表現されてて,IMP型の変数になってる. IMP型はobjc.hで, typedef id (*IMP)(id, SEL, ...); と定義される関数ポインタ. 可変長引数で,id型の第一引数,SEL型の第二引数をとり,id型の返り値を返す.