出现如下错误:
2016-02-13 22:09:22.318 Test[2757:192106] *** Assertion failure in -[UISearchResultsTableView dequeueReusableCellWithIdentifier:forIndexPath:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.30.14/UITableView.m:6564
出现这种错误的原因是因为当你点击搜索框的时候, 会出现一个新的UITableViewController, 然后调用UITableViewController的代理方法, 当调用到如下方法时, 就会出错
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) cell.textLabel!.text = self.datas[indexPath.section].cities[indexPath.row] return cell }
因为这里的tableView是UISearchResultsTableView, 当UISearchResultsTableView去内存池中寻找标示为reuseIdentifier的Cell的时候就会出现上面的错误
所以解决方法就是将tableView改为self.tableView即可, 因为self.tableView指的就是UITableViewController中的tableView