classの判別, 継承の判別

とあるObjectが, どのクラスに属しているかを調べたいときがある。

例えば, キャストしたいとか, そんなとき Java だと, instanceof というのがあります。

Objective-Cではどうでしょうか?

そのクラスかどうかを調べる

if ( [clazz class] == [MyExClass class])
{
   // Equal
} 

class メソッドを使います。clazz はクラスのインスタンスであると仮定します。

そのクラスのサブクラスであるかどうかを調べる

if ( [clazz isKindOfClass:MyExClass class]
{
   // clazz is extends of MyExClass
}

isKindOfClass を使います。