メソッドを関数として呼び出す 実は、Objective-C のメソッドの実態は C 言語の関数と同じです。 普段は隠蔽されていますが、メソッドとは最初の引数に自分のクラスを参照するオブジェクトを受け取る関数なのです。 メソッドの実体が関数であるという事実は、C 言語との親和性が極めて高いことを意味してます。 ピュアな C 言語で記述されたライブラリから Objective-C のメソッドを呼び出したり、オブジェクトを利用することも無理な話ではないのです。 Objective-C のメソッドは、常に IMP 型であると定義されます。 IMP 型は、ヘッダファイルで次のように定義されています。 typedef id (*IMP)(id, SEL, ...); この定義からも分かるように、Objective-C で宣言されたすべてのメソッドは、暗黙的に id 型と SEL 型の引数を持ちます。