【发布时间】: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