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

  • 相关阅读:
    为什么硬链接不能链接目录、文件inode 和目录 dentry 的区别联系
    LVM 详解
    pwd 命令详解
    type 命令详解
    查看文件中字符出现次数
    lesson
    xml linq
    新系统配置
    空合并运算符(??):
    dos.ORM配置和使用
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5188363.html
Copyright © 2011-2022 走看看