ダイナミックObjective-C

メソッドの追加によるクラスの拡張

ここで、「既存のクラスにメソッドを追加」というところに注目してほしい。つまり、これを使うと、いまあるクラスの機能を拡張することができるのだ。自分で定義したクラスに限らず、Cocoaが提供するクラスも含めて、だ。

たとえば、Cocoaで文字列機能を提供するNSStringというクラスがある。このNSStringの機能を、カテゴリでメソッドを追加することで、拡張することができる。

そ、そうだったのか!

クラスの乗っ取り

Objective-Cには、ポージングという機能がある。これは、一言でいうと、既存のクラスを「乗っ取る」ことができる機能だ。すでにあるクラスを、強引に自分のクラスで置き換えてしまう。

うひー。