メソッド

メソッドは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型の変数

で構成される構造体にたどり着く.