我想創建一個自動生成UITableViewCell
的類註冊表類,當用戶按下按鈕時,它將轉到該類並運行代碼。如何自動初始化不同類別的對象?
目前做這樣的事情,在視圖控制器我必須做這樣的事情
Function1Class *function = [[Function1Class alloc] init];
function.view.backgroundColor = [self veryLightGrayColor];
[self.navigationController pushViewController: menu animated: YES];
然後在數據源我在cellForRowAtIndexPath
作出新的情況,並在委託我做的情況下,在didSelectRowAtIndexPath
中進行單行方法調用。
我想更改代碼,以便任何人想在一個地方,一個新的類添加到這個頁面可以做的,是這樣的:
Function1 *function;
[self addClass:function];
而在addClass
的「功能」傳遞將存儲在一個數組中
對於cellForRowAtIndexPath
和didSelectRowAtIndexPath
的情況下,他們可以很容易地通過存儲在一個數組中調用正確的方法。
問題是如何自動化傳遞到addClass
的每個類對象的初始化?
我能得到用戶編寫代碼來完成他們班
Function1 *function = [[Function1 alloc] init];
[self addClass:function];
那麼該類對象已經被初始化加,但在啓動過程中,這意味着每一個類的對象是越來越初始化,這是一個問題如果有很多課程。我如何從數組中取出一個類對象,然後初始化它以使用它?類對象是不同階層,所以我不能硬編碼arrayOfClassObjects[i] = [[Function1 alloc] init];
感謝
你可以使用反射嗎?就像'[[NSClassFromString(@「ClassNameOnlyKnownAtRuntime」)alloc] init]'? – 2015-04-03 22:35:01
^這可能是非常有前途的。讓我試試看。 – 2015-04-03 22:44:26