ios - xcode-线程 1 : EXC_BAD_ACCESS

标签 ios swift uitableview debugging

加载 ViewController 时出现此错误。 我不知道我能做什么 EXC_BAD_ACCESS

loadDataFromDb函数是这样的

func loadDataFromDb() {
    let fetchRequest = NSFetchRequest(entityName: "Chats")
    daten = self.context!.executeFetchRequest(fetchRequest, error: nil) as! [Model]
    tableView.reloadData()
}

我用谷歌搜索了这个错误,但没有任何帮助

最佳答案

dequeueReusableCellWithIdentifier返回一个可能为零的可选值。

通过使用 as! 强制转换为 UITableViewCell ,这样 nil 就会被转换为 UITableViewCell 并且最终调用nil 上的方法,这会导致异常。

尝试在使用之前使用 if let 来打开单元格,或者更好地使用 dequeueReusableCellWithIdentifier(_ identifier: String, forIndexPath indexPath: NSIndexPath) -> AnyObject ,它不返回可选值。

总的来说,请尝试远离 ! 并避免使用它,除非绝对必要。

编辑:

这是一种方法

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as? UITableViewCell {

        cell.textLabel?.text = "Text"

        return cell
    }

    return UITableViewCell()
}

关于ios - xcode-线程 1 : EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859561/

相关文章:

iphone - 如何在表格 View 单元格上动态地在中心设置 ImageView

ios - 突出显示单元格以进行多项选择

ios - 一个 iOS 应用程序可以购买另一个应用程序(同一供应商)中定义的应用程序内不可续订订阅产品吗?

ios - "let _ = ..."(让下划线等于)在 Swift 中有什么用吗?

ios - 当我在 Swift 中调用 AZSCloudBlob 时,Azure 存储中断

ios - 如何将属性的类型限制为预定义的两种类型(UIColor 或 CAGradientLayer)

ios - Xcode dataSource 必须从 tableView :cellForRowAtIndexPath 返回一个单元格

ios - UICollectionView 单元格布局不重置以前设置的边框

ios - 坐标空间之间的转换 SpriteKit

iphone - 如何在 xcode4 中查看高分辨率