2013-04-04 61 views
0

我在我正在研究的項目中有一個故事板,但最近我注意到我遇到了問題。從哪兒冒出來,我的代碼現在告訴我,我需要註冊一個類的小區標識故事板看起來沒有正確加載

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier rootCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 

(我在故事板的電池原型,所以我不認爲我需要)。如果我執行

[tableView registerClass:<my class> forCellReuseIdentifier:<identifer>];

它會得到超出,但隨後掛斷,當我

[self performSegueWithIdentifier:<my ID> sender:self];

,並告訴我個在它無法找到賽格。我能夠確認在故事板中設置了正確的標識符。

有誰知道這個問題可能是什麼?

我在故事板上重新命名了一段時間,但是我更新了info.plist,我確信它在那之後仍然有效。

如果我在另一個項目中重新創建故事板,它可以正常工作,但是如果我在此項目中重新創建故事板,它將失敗。

編輯:我確實在IB 中設置了正確的類,這也是一個手動搜索。

編輯:增加了確切的錯誤措辭。

+0

確切的(初始)錯誤是怎樣的? – tilo 2013-04-04 16:39:34

+0

我添加了確切的錯誤信息。 – Weston 2013-04-04 16:45:42

+0

在Storyboard中是否有一個標識符爲「rootCell」的單元格? – tilo 2013-04-04 16:47:39

回答

1

我剛剛發生了這種情況。

只好在我viewDidLoad中

我使用的是普通的viewController添加[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WhateverCellID"];,意識到自己的錯誤,並切換到tableViewController,並開始得到同樣的錯誤。

替代地使用「的UITableViewCell *細胞= [的tableView dequeueReusableCellWithIdentifier:CellIdentifier];` 沒有indexPath選項,這是一個不同的呼叫,它不需要註冊,並且可以滿足需要。

+0

這是行不通的。即使我修復了出列,但當我嘗試繼續時,它仍然崩潰。 – Weston 2013-04-05 14:01:53

0

如果您從iPhone/iPad/Simulator中刪除故事板或者無論您在調試它,然後在Xcode中清理,然後生成&運行,您是否看到不同的結果?我問的原因是,每次在Xcode中編譯時,都會收到項目所包含的所有內容的聯合。所以,如果您重新命名故事板,並沒有完全清理乾淨,那麼您的內置產品中可能會有兩個故事板。