2010-08-21 13 views
7

W protokole NSObject definiuje sposób, który jest podobny do tego:typ klasy Objective C

-(Class) class 

Jakiego typu obiekt jest obiektem klasy? Czy to nawet obiekt? Co mogę zrobić z tym obiektem? Czy mogę uzyskać klasę podstawową lub przyjęte protokoły?

Odpowiedz

15

Class sama jest klasą zdefiniowaną przez Objective-C runtime, podobnie jak klasa Class w języku Java. Na przykład, można użyć funkcji class_getClassName() aby uzyskać nazwę klasy:

NSObject *o = [[[NSObject alloc] init] autorelease]; 
NSLog(@"%s\n", class_getClassName([o class])); // prints "NSObject" 

możesz zrobić wszelkiego rodzaju introspekcji/refleksji z Class obiektów; zobacz szczegóły dotyczące środowiska wykonawczego Objective-C.

1

Jest teraz

NSObject *o = [[NSObject alloc]init];
NSLog(@"%s\n", object_getClassName([o class]));

object_getClassName zamiast class_getClassName

Powiązane problemy