所以我有自定义UITableViewCells
(用故事板制作),当我不按字面意思分配,初始化单元格时,应用程序崩溃了。但是,由于它们是自定义单元格,我不知道如何分配/初始化它们。
此代码崩溃:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TableViewCells *cell = (TableViewCells *)[tableView dequeueReusableCellWithIdentifier:@"TableViewCellsID"];
return cell;
}
打印到控制台:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
我理解这意味着它崩溃了,因为还没有分配单元格,但是当我尝试分配它时,我必须指定一个单元格样式。
因此,当我按如下方式构建单元格时,它不会崩溃:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TableViewCells *cell = (TableViewCells *)[tableView dequeueReusableCellWithIdentifier:@"TableViewCellsID"];
if (cell == nil)
cell = [[TableViewCells alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TableViewCellsID"];
return cell;
}
问题是可行的代码(第二组),要求我设置UITableViewStyle
。据我所知,没有UITableViewStyleCustom。
任何帮助都将不胜感激。
答案 0 :(得分:-1)
在第一种情况下崩溃,因为没有要重复使用的单元格,而您正在调用dequeueReusableCellWithIdentifier
。
编辑 - 对于自定义单元初始化,您可以检查以下线程 -
How to make custom TableViewCell with initWithStyle after 3.0