ダイナミックObjective-C
メソッドの追加によるクラスの拡張
ここで、「既存のクラスにメソッドを追加」というところに注目してほしい。つまり、これを使うと、いまあるクラスの機能を拡張することができるのだ。自分で定義したクラスに限らず、Cocoaが提供するクラスも含めて、だ。
たとえば、Cocoaで文字列機能を提供するNSStringというクラスがある。このNSStringの機能を、カテゴリでメソッドを追加することで、拡張することができる。
そ、そうだったのか!
クラスの乗っ取り
Objective-Cには、ポージングという機能がある。これは、一言でいうと、既存のクラスを「乗っ取る」ことができる機能だ。すでにあるクラスを、強引に自分のクラスで置き換えてしまう。
うひー。