tableview返回错误(datasource必须返回一个单元格)

时间:2013-10-02 19:17:50

标签: ios uitableview ios7

我正在尝试将我的应用更新到iOS 7但是所有的东西都消失了或者不再起作用了:S。

我无法解决这个问题,我不知道它为什么会返回NULL。

*** Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:], /SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:6061
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *cellIdentifier = @"Cell";

static NSString *cellIdentifier2 = @"Cell2";


NSDictionary *naamInfo;

if (tableView == self.searchDisplayController.searchResultsTableView) {
    naamInfo = [self.filteredNameArray objectAtIndex:indexPath.row];
} else {
    naamInfo = [self.nameList objectAtIndex:indexPath.row];
}



UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if ([[naamInfo objectForKey:@"gender" ] isEqual: @"man"] ) {

        cell = [UITableViewCell configureFlatCellWithColor:[UIColor peterRiverColor] selectedColor:[UIColor cloudsColor] reuseIdentifier:cellIdentifier inTableView:tableView];

    }else if ([[naamInfo objectForKey:@"gender" ] isEqual: @"woman"]){
        cell = [UITableViewCell configureFlatCellWithColor:[UIColor colorWithRed:1 green:0.396 blue:0.604 alpha:1]  selectedColor:[UIColor cloudsColor] reuseIdentifier:cellIdentifier2 inTableView:tableView];

    }

NSLog(@"CELL %@",cell);

    cell.detailTextLabel.font = [UIFont boldFlatFontOfSize:14];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.cornerRadius = 8.f; 
    cell.separatorHeight = 1.f; 

cell.textLabel.font = [UIFont boldFlatFontOfSize:18];
cell.textLabel.text = [naamInfo objectForKey:@"name"];
cell.detailTextLabel.text = [naamInfo objectForKey:@"country"];

return cell;

}

日志返回NULL,所以我理解为什么我得到异常,我得到的是如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试放置:

if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

后:

UITableViewCell *cell = [tableView dequeue....