id 型で受け取った場合など、NSObject のクラス名判定をおこないたい場合があります。
サブクラスかどうか判定するには isKindOfClass を使います。
NSMutableArray *array = [[NSMutableArray alloc] init]; if ([array isKindOfClass:[NSArray class]]) { .... }
同クラスかどうか判定するには isMemberOfClass を使います。
NSMutableArray *array = [[NSMutableArray alloc] init]; if ([array isMemberOfClass:[NSArray class]]) { // NSArray のサブクラスですが、NSArray ではないので NO } if ([array isMemberOfClass:[NSMutableArray class]]) { // NSMutableArray なので YES }
クラスメゾッドとして isSubclassOfClass も定義されています。
if ([NSMutableArray isSubclassOfClass:[NSArray class]]) { // class からクラスメゾッドで判定できます }