Objective-C

メタ言語的メカニズム

オブジェクトシステム自体がCで書かれていることに加え、C哲学である「プログラマにできることを制限しない」を良くも悪くも受け継いでいるため、Objective-Cにはさまざまな超言語的技法が存在している。これらの機能は非常に強力であるため乱用を避けるべきだが、この柔軟性こそがObjective-Cの魅力と評する向きもある。
posing
クラステーブルを書き換えることでクラスの実体を置き換える技法。
method swizzling
クラスのメソッドテーブルを書き換えることでセレクタ名のリネーミングを行なう技法。
IMP呼びだし
毎回メッセージパッシングを行なう代わりに、一度だけメソッドを解決して関数ポインタを取り出し、メソッドの呼び出しを高速化する技法。呼びだしコストが通常のC関数と等しくなる。俗にインライン化とも呼ばれる。

戻る