2010-02-09 16 views
23

He una cadena que es valor es el nombre de la Clase [MiClase] que tiene que ser instanciado y MyClass tiene un método llamadocómo crear una instancia de un objeto de clase a partir de una cadena en Objective-C?

-(void)FunctionInClass; 

estoy usando el método llamado NSClassFromString para crear una instancia MiClase.i Quiere saber

1) what does NSClassFromString return?? 
2) what is id? 
3) How to call method -(void)FunctioninClass which is in MyClass using the instance. 

¿Cómo debo proceder, lo estoy haciendo en Objective-C para la aplicación de iPhone?

Respuesta

51

1) what does NSClassFromString return??

devuelve una clase, lo que significa que puede hacer [[NSClassFromString(@"MyClass") alloc] init]; ver Mac Dev Center Docs para obtener más información.

2) what is id?

Ver http://www.otierney.net/objective-c.html#idtype

3) How to call method -(void)FunctioninClass which is in MyClass using the instance.

id myclass = [[NSClassFromString(@"MyClass") alloc] init]; 
[myclass FunctioninClass]; 
+0

AFAICT, NSClassFromString es una función, no una clase. El punto 1 se convertiría en NSClassFromString (@ "MyClass") –

+0

Buen punto. Me estaba yendo de la memoria. Todavía la idea general está allí ... – echo

+0

@ point 1) si NSClassFromString está devolviendo una clase, entonces esa clase tiene que ser instanciada n entonces podemos llamar al método FunctioninClass ¿verdad? pero @ point 3) estamos usando directamente la clase llamada myclass y función de llamada. Probé con el punto 3) me da un error: MyClass undeclared (primer uso en la función) y myclass undeclare (primer uso en la función) – suse

Cuestiones relacionadas