Verwendung von isMemberOfClass; false zurückgeben
Im folgenden Code dachte ich, dass die zweite Bedingung wahr wäre, aber sie stellt sich als falsch heraus. Vermisse ich etwas? Bitte hilf mir zu verstehen.
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
}
Bearbeiten
Ich habe die Unterklasse von NSArray als MyArray erstellt und ihre Instanz mit isMemberOfClass getestet (siehe unten)
if ([myArray isMemberOfClass:[MyArray class]]) {
NSLog(@"Member MyArray"); //Printed;
}
Ich denke also, dass isMemberOfClass in NSArray nicht möglich ist, wahrscheinlich auch in einigen anderen Framework-Klassen.
Vielen Dank.