2010-02-09 3 views
23

Ho una stringa il cui valore è il nome della Classe [MyClass] che deve essere istanziati, e MyClass ha un metodo chiamatocome istanziare un oggetto di classe da una stringa in Objective-C?

-(void)FunctionInClass; 

sto usando il metodo chiamato NSClassFromString istanziare MiaClasse.i voglio sapere

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

come devo procedere, lo sto facendo in Objective-C per l'app per iPhone?

risposta

51

1) what does NSClassFromString return??

restituisce un classe, il che significa che si può fare [[NSClassFromString(@"MyClass") alloc] init]; vedere Mac Dev Center Docs per maggiori informazioni.

2) what is id?

Vedi 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 è una funzione, non è una classe. Il punto 1 diventerebbe NSClassFromString (@ "MyClass") –

+0

Un buon punto. Stavo andando dalla memoria. Ancora l'idea generale è lì ... – echo

+0

@ punto 1) se NSClassFromString sta restituendo una classe, allora quella classe deve essere istanziata n quindi possiamo chiamare il metodo FunctioninClass giusto? ma @ punto 3) stiamo usando direttamente la classe chiamata myclass e la funzione di chiamata. Ho provato con il punto 3) mi ha dato un errore: MyClass non dichiarato (prima funzione in funzione) e myclass non dichiarato (primo utilizzo in funzione) – suse