Swift TableView SearchDisplayController EXC_BAD_INSTRUCTION

时间:2015-02-16 12:44:54

标签: ios uitableview swift uisearchdisplaycontroller exc-bad-instruction

我有一个带有人的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
}

1 个答案:

答案 0 :(得分:0)

很难知道导致崩溃的原因是什么,而没有确切的发生位置的详细信息,但问题可能出在self.tableView的出列线上。在此委托中回调func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath,tableView参数可以来自searchDisplayController或后台TableViewController。为确保您从正确的tableView中出列,请将self.tableView更改为tableView

另请注意,{8}已弃用UISearchDisplayController以替换为UISearchController,因此如果与此无关,则很快就会遇到其他问题。