2010-02-09 124 views
23

我有一個字符串誰的值是名稱的類[MyClass的]它有被實例化,並且MyClass的有一個名爲如何從Objective-C中的字符串實例化類的對象?

-(void)FunctionInClass; 

我使用所謂NSClassFromString的方法來實例化MyClass.I方法想知道

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

我應該如何繼續,我在Objective-C爲iPhone應用程序做它?

回答

51

1) what does NSClassFromString return??

它返回一個類,這意味着你可以做[[NSClassFromString(@"MyClass") alloc] init]; 看到Mac Dev Center Docs獲取更多信息。

2) what is id?

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是一個函數,不是類。點1會變成NSClassFromString(@「MyClass」) – 2010-02-09 03:59:02

+0

好點。我正在記憶中。仍然一般的想法是... – echo 2010-02-09 04:00:45

+0

@ point 1)如果NSClassFromString返回一個類,那麼該類必須被實例化,那麼我們可以調用FunctioninClass方法嗎?但@點3)我們直接使用名爲myclass的類並調用函數。我試過3)它給了我一個錯誤:MyClass未聲明(首次在函數中使用)和myclass undeclare(在函數中首次使用) – suse 2010-02-09 04:03:40