zoukankan      html  css  js  c++  java
  • iOS在UITableViewController里使用UISearchDisplayController报错"[UISearchResultsTableView dequeueReusableCellWithIdentifier:forIndexPath:]"

    出现如下错误:

    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

  • 相关阅读:
    接口
    多态
    static的用法
    Person类中多个构造方法和测试
    曹操外卖实现功能
    曹操外卖数据表设计
    java中 try catch finally和return联合使用时,代码执行顺序的小细节
    GenerationType四中类型
    spring boot
    VMware修改为静态ip
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5188363.html
Copyright © 2011-2022 走看看