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 からクラスメゾッドで判定できます
}