用于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
这工作就像一个魅力。谢谢!包装我的代码 if(tableView == self.searchDisplayController?.searchResultsTableView) 解决了这个问题。 – UncleAlfonzo 2014-10-18 04:54:28
你检查过密钥“name”的值是不是零? – DaSilva 2014-10-17 13:44:19
数据中对象的类型是什么?它是一个快速类型还是Obj-C类型? – 2014-10-17 14:12:29
顺便说一下,第5行应该是'if cell == nil {'而不是if(cell!= nil){'。 – 2014-10-17 14:22:01