użycie isMemberOfClass; powrót fałszywy

W poniższym kodzie myślałem, że drugi warunek będzie prawdziwy, ale okazuje się fałszywy. Czy czegoś mi brakuje? Pomóż mi zrozumieć.

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
}

Edytować

Stworzyłem podklasę NSArray jako MyArray i przetestowałem jej instancję używając isMemberOfClass jak poniżej

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

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

Tak więc, przypuszczam, że nie jest możliwe użycie klasy MemberOfClass w NSArray, prawdopodobnie w niektórych innych klasach.

Dzięki.

questionAnswers(3)

yourAnswerToTheQuestion