用于UISearchController的自定义单元格

问题描述:

我正在尝试(但无法)为UISearchController单元格定义自定义样式。运行下面的代码会导致cell.textlabel?.text行上出现EXC_BAD_INSTRUCTION错误。我错过了一些完全明显的东西吗?用于UISearchController的自定义单元格

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

    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell! 
    if (cell != nil) { 
     cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "Cell") 
    } 
    if (tableView == self.searchDisplayController?.searchResultsTableView) { 
     let data: AnyObject = self.searchResults.objectAtIndex(indexPath.row) as AnyObject 
     println("searchresults: \(data)") 
     cell.textLabel?.text = data.valueForKeyPath("name") as? String 
     cell.detailTextLabel?.text = data.valueForKeyPath("placemark") as? String 
    } 
    return cell 
} 
+0

你检查过密钥“name”的值是不是零? – DaSilva 2014-10-17 13:44:19

+0

数据中对象的类型是什么?它是一个快速类型还是Obj-C类型? – 2014-10-17 14:12:29

+0

顺便说一下,第5行应该是'if cell == nil {'而不是if(cell!= nil){'。 – 2014-10-17 14:22:01

无论发生什么情况,您都将出现带有标识符“单元格”的单元格。相反,首先检查您所在的表视图,然后根据需要出列不同的单元格(使用不同的标识符)。

+0

这工作就像一个魅力。谢谢!包装我的代码 if(tableView == self.searchDisplayController?.searchResultsTableView) 解决了这个问题。 – UncleAlfonzo 2014-10-18 04:54:28