использование isMemberOfClass; возвращение ложного

В приведенном ниже коде я думал, что второе условие будет верным, но оно оказывается ложным. Я что-то пропустил? Пожалуйста, помогите мне понять.

NSArray *array = [[NSArray alloc] init];
NSLog(@"%@", NSStringFromClass([array class]));

if ([array isMemberOfClass:[NSObject class]]) {

    NSLog(@"Member NSObject"); //Didn't print; 
}

if ([array isMemberOfClass:[NSArray class]]) {

    NSLog(@"Member NSArray"); //Didn't print; I don't understand why?
}

if ([array isKindOfClass:[NSObject class]]) {

    NSLog(@"Kind of NSObject"); //Printed; Expected
}

if ([array isKindOfClass:[NSArray class]]) {

    NSLog(@"Kind of NSArray"); //Printed; Expected
}

редактировать

Я создал подкласс NSArray как MyArray и протестировал его экземпляр, используя isMemberOfClass, как показано ниже

if ([myArray isMemberOfClass:[MyArray class]]) {

    NSLog(@"Member MyArray"); //Printed;
}

Так что, я думаю, isMemberOfClass невозможен в NSArray, возможно, в некоторых других классах фреймворка.

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос