我有一個默認的主細節表視圖與menu。菜單的工作原理,但由於某些原因按下「+」按鈕來添加其他細胞在我的應用程序時,我得到了以下錯誤:必須註冊一個筆尖或類的標識符或連接原型單元
終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,理由是:「無法出列具有標識符細胞的細胞 - 必須註冊標識符的筆尖或一類或
我搜索天
溶液中的故事板」連接的原型細胞如果我添加到viewDidLoad
:
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
我沒有收到錯誤,但添加的單元格不是在故事板中配置的單元格,也沒有指向詳細視圖控制器。
如果原型單元格的標識符字段已填充且與* cellIdentifier相同,我已經多次檢查過。
從我所知道的問題來看,其性質與here提問相同。
任何幫助,將不勝感激,如果你有時間,請解釋爲什麼它是錯的,我做了什麼或爲什麼應該添加某些代碼。
請求的代碼(兩者都是通過Xcode的5.0.1添加默認的代碼):
// Code to add the button
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
self.navigationItem.rightBarButtonItem = addButton;
// Code called when button is pressed:
- (void)insertNewObject:(id)sender
{
if (!_objects) {
_objects = [[NSMutableArray alloc] init];
}
[_objects insertObject:[NSDate date] atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
NSDate *object = _objects[indexPath.row];
cell.textLabel.text = [object description];
return cell;
}
還檢查了在註釋中添加的圖片和項目文件
表視圖是從故事板或筆尖實例化的嗎?如果不是,那麼它不會知道原型單元。通常情況下,你的視圖控制器將通過一個storyboard segue或一個'[storyboard instantiateViewControllerWithIdentifier]'實例化,這將反過來從故事板實例化你的表視圖和原型單元格。 –
我通過故事板完成了一切(菜單代碼除外)。正如我所說,我是iOS開發的新手,所以我所知道的只是蘋果在他們的教程中的內容,並且他們使用了故事板。如果我誤解了你的問題,請原諒我。 – Nahbyr
你可能會展示一些更多的代碼,特別是當你點擊+按鈕時被調用的代碼。另外,正如你所說你是新手,你是否可以詳細解釋你正在努力實現的目標以及你期待的應用程序? –