uso de isMemberOfClass; devolviendo falso

En el código a continuación, pensé que la segunda condición sería verdadera, pero se está volviendo falsa. ¿Me estoy perdiendo de algo? Por favor ayúdame 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

Creé la subclase de NSArray como MyArray y probé su instancia usando isMemberOfClass como se muestra a continuación

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

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

Por lo tanto, supongo que no es posible que MemberOfClass en NSArray, probablemente también en otras clases marco.

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta