2010-02-09 6 views
23

Ich habe einen String, der Wert ist, ist der Name der Klasse [MyClass], die instanziiert werden muss, und MyClass hat eine Methode namenswie ein Objekt der Klasse von String in Objective-C zu instanziieren?

-(void)FunctionInClass; 

ich die Methode bin mit NSClassFromString genannt MyClass.i instanziiert Objective-C für das iPhone app wissen wollen

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

wie soll ich vorgehen, es in ich tue?

Antwort

51

1) what does NSClassFromString return??

Es gibt eine Klasse, was bedeutet, können Sie tun, [[NSClassFromString(@"MyClass") alloc] init]; sehen Mac Dev Center Docs für weitere Informationen.

2) what is id?

Siehe 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 ist NSClassFromString eine Funktion, keine Klasse. Punkt 1 würde NSClassFromString werden (@ "MyClass") –

+0

Guter Punkt. Ich ging aus dem Gedächtnis. Immer noch die allgemeine Idee ist ... – echo

+0

@ Punkt 1) Wenn NSClassFromString eine Klasse zurückgibt, dann muss diese Klasse instanziiert werden n dann können wir FunctioninClass-Methode richtig? aber @ Punkt 3) benutzen wir direkt die Klasse namens myclass und aufrufende Funktion. Ich versuchte mit Punkt 3) es gibt mir einen Fehler: MyClass nicht deklariert (erste Verwendung in Funktion) und Myclass undeclare (erste Verwendung in Funktion) – suse