以下代码用作将nib文件中的tableviewcell放入tableview的代码。我将tableviewcell与tableview放在同一笔尖中。我也尝试过初始化viewdidload中的单元,但是没有成功。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"identifier";
NSLog(@"the cellidentifier is %@", CellIdentifier);
bookmarksTableViewCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSLog(@"the cell is %@", bookmarksTableViewCell);
return bookmarksTableViewCell;
}
我得到的错误是
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
我已经检查了IB中的连接并也对其进行了重新布线,但结果还是一样。当我尝试使用NSLog'ing单元时,它为null。
最佳答案
你需要这样做
static NSString *CellIdenetifier = @"Cell";
BookMarksTableViewCell *cell = (BookMarksTableViewCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
cell = [[BookMarksTableViewCell alloc] initWithStyle:UITableViewCellStyleSubTitle reuseIdentifer:CellIdentifier];
}
我不确定是否需要,但我想我将其包括在内。