0

我有一个带人员的 TableView。当我点击一个单元格时,它会执行另一个视图的序列。

搜索作品。但是当我搜索,取消,点击一个单元格,返回并想再次搜索时,它崩溃了。EXC_BAD_INSTRUCTION。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{

    var cell = UITableViewCell()


    if let sdc = self.searchDisplayController {

        if sdc.active {

        if let c: AnyObject? = self.tableView.dequeueReusableCellWithIdentifier("CellPerson"){


            cell = c as UITableViewCell
            cell.textLabel.text = personsFiltered[indexPath.row]! 

            }
            else
            {
                cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
            }


        } else {

        if let c: AnyObject? = self.tableView.dequeueReusableCellWithIdentifier("CellPerson"){


            cell = c as UITableViewCell
            cell.textLabel.text = persons[indexPath.row]! 

            }
            else
            {
                cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
            }

    }


    return cell
}
4

1 回答 1

0

如果没有详细说明崩溃发生的确切位置,很难知道是什么导致了崩溃,但问题可能出在 self.tableView 的出列行周围。在此委托回调func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath 中,tableView 参数可能来自 searchDisplayController 或支持的 TableViewController。为确保您从正确的 tableView 出列更改self.tableViewtableView.

另请记住,UISearchDisplayControlleriOS 8 中已弃用,UISearchController因此如果这与您很快就会遇到其他麻烦无关。

于 2015-02-16T13:40:40.530 回答