2010-11-16 48 views
0

我想要在的OBJ-C使用動態類型,我有下面的代碼和錯誤:NSClassFromString - 不工作

alt text

對我來說似乎不錯,但不要」不想工作,有什麼想法?

回答

1

既然你實際上並沒有創建一個新的實例(只檢索一個),沒有必要爲此。這是足夠的:

// If we don't know the exact class of the cell, type it with the common superclass of all cells 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"rssItemCell"]; 
0

你不能使用變量cellClass作爲類型,它是一個對象。

在這種情況下,你必須使用一個id對象或UITableViewCell中。事情是這樣的:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"rssItemCell"]; 

id cell = [tableView dequeueReusableCellWithIdentifier:@"rssItemCell"]; 
3

因爲你在運行時創建cellClass,編譯器不知道它,所以它不能編譯代碼。

這會工作:

Class cellClass = NSClassFromString(@"CustomCell"); 
UITableViewCell *cell; // You could just id here as well if you wanted but you now that CustomCell is definitely a type of UITableViewCell 
cell = [tableView dequeueReusableCellWithIdentifier:@"rssItemCell"]; 

可是,爲什麼你不這樣做呢?

CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"rssItemCell"]; 
+0

因爲它不會總是CustomCell,它必須是不固定的,謝謝你的幫助,我會測試你的解決方案 – Mapedd 2010-11-16 14:01:17