0

iOS プロジェクトで UItableView を楽しんでいますが、正常に動作していますが、ボイスオーバーをオンにするとクラッシュし、このコードが null セルを返すようです。私のコードに問題はありますか :

-(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;

セルが null の場合、おそらく NIB をロードできなかったことを意味し、NIB の名前が間違っているか、Interface Builder で適切な接続を確立できなかったなどの単純なものである可能性があります。

于 2012-08-16T17:49:06.303 に答える