CoreData Swift:致命错误:在展开Optional值时意外发现nil

时间:2016-02-03 23:08:57

标签: ios swift

override func viewWillDisappear(animated: Bool) {
    // need to add a device?
    if profile == nil {
        if let name = nameTextField.text, species = speciesTextField.text, dob: NSDate = datePicker.date, entity = NSEntityDescription.entityForName("Profile", inManagedObjectContext: managedObjectContext) where !name.isEmpty && !species.isEmpty {
            profile = Profile(entity: entity, insertIntoManagedObjectContext: managedObjectContext)
            profile?.name = name
            profile?.species = species
            profile?.dob = dob
        }
    }
}

每当我运行我的应用程序时,这部分代码会产生“致命错误:在展开可选值时意外发现nil”#39;我确信name,species和dob确实包含控制台中显示的数据。你知道哪个变量可以包含nil吗?我正在使用核心数据并且不熟悉它。

屏幕: enter image description here

实体: enter image description here

2 个答案:

答案 0 :(得分:0)

很可能是你的一个文本字段产生了nil值。放入断点并检查它们(和datePicker)是否为零。您使用的是IBOutlets,还是以编程方式创建的?

答案 1 :(得分:0)

在屏幕截图中,它说:

managedObjectContext = (NSManagedObjectContext!)nil

因此,这很可能是导致您崩溃的原因。