2013-02-11 53 views
0

我一直在這個項目上工作了一段時間。一切都很好,今天我升級到XCode 4.6 ...突然間,崩潰。如果沒有數據(我在使用核心數據),它會加載一個空白的tableview。只要我嘗試添加一些東西在我的其他視圖控制器,崩潰。模擬器和我的設備上出現同樣的問題。隨着「所有異常」斷點啓用,調試器指向這一行:XCode 4.6 dequeueReusableCellWithIdentifier:forIndexpath:不工作

ReedCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

我得到「的UITableView:無法識別的選擇......」作爲例外。我的類肯定是​​UITableViewController的子類,因此應該有一個tableView,不是嗎?當我將下面的測試代碼放入ViewDidLoad時,我沒有得到確認。換句話說,我的tableView不再響應該方法。有沒有搞錯?如果它被棄用,我沒有看到任何文件。

if ([self.tableview respondsToSelector:@selector(dequeueReusableCellWithIdentifier:forIndexPath:)]) { 
    NSLog(@"RTVC responds to selector dequeueReusableCellWithIdentifier:forIndexPath:"); 
} 

我已經做了清理,刪除它從模擬器,經檢查發現在故事板視圖控制器仍然是正確的類(它是)。我也嘗試將消息發送到「self.tableview」而不是「tableview」。沒有修復。再次,這工作正常,我沒有改變任何東西,只是升級到4.6。謝謝!

+0

檢查故事板中正確設置的標識符 – 2013-02-11 21:48:38

+1

您使用的是什麼模擬器版本?這個方法是在iOS 6中引入的,所以如果你使用的是模擬器<6,那麼這會失敗,就像你看到的那樣 – 2013-02-11 21:48:42

+0

你註冊了一個NIB或者類的重用標識符嗎? – Tommy 2013-02-11 21:49:03

回答

1

此方法已添加到iOS 6.因此它不會存在於較舊的模擬器中。

你可以看到,當被看文檔UITableView

可用性
可提供的iOS 6.0及更高版本引入的方法。

+0

D'OH!我知道這很簡單。看起來我正在嘗試運行iOS 5模擬器,之前我在iOS 6中運行它。我將不得不修復此問題,因爲我希望我的應用能夠與iOS 5向後兼容。謝謝! – 2013-02-11 21:55:55