tableView:dequeueReusableCellWithIdentifier:和tableView: dequeueReusableCellWithIdentifier: forIndexPath:

如果既没有在TableViewController中使用代码的方式注册:

[self.tableView registerClass: [CustomTableViewCell class] 
forCellReuseIdentifier: CellTableIdentifier];

也没有在storyboard或nib中的视图Cell的Identity Inspector->Custom Class对应Cell:

tableView:dequeueReusableCellWithIdentifier:和tableView: dequeueReusableCellWithIdentifier: forIndexPath:_第1张图片
identity inspector

实现tableView:cellForRowAtIndexPath:时,调用以下方法会在运行时报错:
*** Terminating app due to uncaught exception
'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'***

......
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
@"Cell" forIndexPath:indexPath];
......

这时应该采用没有IndexPath参数这种:

......
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
@"Cell"];

if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:
UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
......

你可能感兴趣的:(tableView:dequeueReusableCellWithIdentifier:和tableView: dequeueReusableCellWithIdentifier: forIndexPath:)