我有一个带有菜单的默认主从表视图。该菜单有效,但由于某种原因,当我按下“+”按钮在我的应用程序中添加另一个单元格时出现以下错误:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法将具有标识符 Cell 的单元格出列 - 必须为标识符注册 nib 或类或连接情节提要中的原型单元格”
我搜索了几天的解决方案
如果我添加到viewDidLoad
:
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
我没有收到错误,但添加的单元格不是我的故事板中配置的单元格,它们也不指向详细视图控制器。
我已经多次检查原型单元格的标识符字段是否已填写并且与 *cellIdentifier 相同。
据我所知,这似乎与这里提出的问题具有相同的性质。
任何帮助将不胜感激,如果您有时间,请解释为什么我所做的错误或为什么应该添加某些代码。
请求的代码(都是 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;
}
还要查看评论中添加的图片和项目文件