uso de isMemberOfClass; retornando falso

No código abaixo, pensei que a segunda condição seria verdadeira, mas está se tornando falsa. Estou esquecendo de algo? Por favor me ajude a entender.

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
}

Editar

Eu criei uma subclasse de NSArray como MyArray e testei sua instância usando isMemberOfClass como abaixo

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

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

Então, eu acho que isMemberOfClass não é possível no NSArray, provavelmente em algumas outras classes de framework também.

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion