我有一个带有人的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
}
答案 0 :(得分:0)
很难知道导致崩溃的原因是什么,而没有确切的发生位置的详细信息,但问题可能出在self.tableView的出列线上。在此委托中回调func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath
,tableView参数可以来自searchDisplayController或后台TableViewController。为确保您从正确的tableView中出列,请将self.tableView
更改为tableView
。
另请注意,{8}已弃用UISearchDisplayController
以替换为UISearchController
,因此如果与此无关,则很快就会遇到其他问题。