2010-08-21 18 views
7

En el protocolo NSObject, se define un método que es similar a esto:tipo Clase C Objetivo

-(Class) class 

qué tipo de objeto es el objeto de clase? ¿O es incluso un objeto? ¿Qué puedo hacer con el objeto? ¿Puedo obtener la clase base o los protocolos adoptados?

Respuesta

15

Class es una clase definida por el Objective-C runtime, similar a la clase Class en Java. Por ejemplo, puede utilizar la función class_getClassName() para obtener el nombre de una clase:

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

Usted puede hacer todo tipo de introspección/reflexión con Class objetos; ver la referencia de tiempo de ejecución de Objective-C para más detalles.

1

Ahora es

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

object_getClassName en lugar de class_getClassName