0

我在 iOS 项目中使用 UItableView,它工作正常,但是当我打开语音时它崩溃了,似乎这段代码返回了一个空单元格。你看到我的代码有什么问题吗:

-(UITableViewCell*) cellForIndexPath:(NSIndexPath*) indexPath inTableView:(UITableView*) tableView {
    static NSString *CellIdentifier = @"TocCellView";
    UITableViewCell* cell =(UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        // Use apple technic explained here : http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html

        [[NSBundle mainBundle] loadNibNamed:@"TocCellView" owner:self options:nil];


        cell = self.tableViewCell;
        cell.layer.masksToBounds = YES;
    }

    if ([GraphicHelper isiPad]) {
        [self fillIPadCell:cell withBookPage:[self pageCorrespondingToIndex:indexPath] section:indexPath.section];
    }
    else {
        BOOL isEvenCell = (indexPath.row%2);
        BOOL isEvenHeader = (indexPath.section%2);
        [self fillIPhoneCell:cell withBookPage:[self pageCorrespondingToIndex:indexPath] forEvenCell:isEvenCell inEvenHeader:isEvenHeader];        
    }
    return cell;
}
4

1 回答 1

0

您需要在此行上放置一个断点:

cell.layer.masksToBounds = YES;

如果单元格为空,则可能意味着您的 NIB 无法加载,并且可能与 NIB 的错误名称一样简单,或者您未能在 Interface Builder 中建立正确的连接。

于 2012-08-16T17:49:06.303 回答