当我开始在SearchBar中键入搜索文本时出现以下错误

Assertion failure in -[UISearchResultsTableView _configureCellForDisplay:forIndexPath:]


我的cellForRowAtIndexPath代码Search Display Controller如下:

if(tableView == self.searchDisplayController.searchResultsTableView)
{
    static NSString *CellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if(cell == nil)
    {
        cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [search objectAtIndex:indexPath.row];

    return cell;
}

最佳答案

用此代码替换您的代码,可能会起作用。

if(tableView == self.searchDisplayController.searchResultsTableView)
{
    static NSString *CellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if(cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                      reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [search objectAtIndex:indexPath.row];

    return cell;
}


因为一旦发现该单元格对象再次为nil,便使用[tableView dequeueReusableCellWithIdentifier:CellIdentifier];为nil对象分配了该单元格,这就是它不起作用的原因。

关于ios - 在UISearchResultsTableView中获取“断言失败”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26686684/

10-13 04:07