【问题标题】:App is crashing if using Core Data如果使用 Core Data,应用程序会崩溃
【发布时间】:2015-02-05 15:25:29
【问题描述】:

我在核心数据模型和 data.swift 类中添加了一个新属性(布尔类型)。添加属性后,我尝试运行我的应用程序。一切正常。现在我尝试使用新属性。我写了一些代码,它与属性一起工作。现在我第二次尝试运行该应用程序。它正在崩溃。我得到了发生错误的代码行。但是我得到的代码行与我添加的新属性无关。发生错误的行正在使用核心数据模型中的另一个属性,但不适用于我添加的新属性。有人知道解决方案吗?

我的 data.swift 类:

import Foundation
import CoreData

@objc(data)
class data: NSManagedObject {

 @NSManaged var aufgabe: String
 @NSManaged var datum: NSDate
 @NSManaged var hatDatum: Bool    //new attribute

}

崩溃线:

cell.textLabel!.text = "\(daten[indexPath.row].aufgabe)"

错误消息:线程 1: EXC_BAD_ACCESS (code=1, address=0x0) 控制台中没有写入任何内容。

我的数据模型:https://www.dropbox.com/s/rzlxi30a5mrez52/Bildschirmfoto%202015-02-01%20um%2014.39.42.png?dl=0

【问题讨论】:

  • 您可以尝试从设备或模拟器中删除该应用程序,然后重新运行它吗?这将清除这是否是数据迁移的问题。
  • 我删除了几次应用,但这不是崩溃的原因。
  • 只是为了安全起见(我认为这不是这里真正的问题,但将来可能会是一个问题),当你有一个可选时,避免使用! unwrapping without检查选项是否为nil。为了更安全,不要使用cell.textLabel!.text = [...],而是使用? 运算符使其类似于cell.textLabel?.text = [...]。这 '?'将检查选项是否存在(如果单元格中有 textLabel),如果不存在,它将不会尝试执行该行的其余部分并崩溃。
  • 好的,谢谢提示!

标签: ios xcode swift core-data attributes


【解决方案1】:

重置模拟器或删除应用。这是您的数据模型文件中的冲突。

【讨论】:

  • 我删除了几次应用,但这不是崩溃的原因。
  • 它是否在特定行崩溃?
  • 是的,我在我的问题 (cell.textLabel!.text = "\(daten[indexPath.row].aufgabe)") 中写下了这一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
相关资源
最近更新 更多