Ios CoreData Swift:致命错误:在展开可选值时意外发现nil
每当我运行我的应用程序时,这部分代码都会生成“致命错误:在展开可选值时意外发现nil”。我确信名称、物种和dob确实包含控制台中显示的数据。你知道什么变量可以包含nil吗?我正在使用核心数据,对其不熟悉 屏幕: 实体:Ios CoreData Swift:致命错误:在展开可选值时意外发现nil,ios,swift,Ios,Swift,每当我运行我的应用程序时,这部分代码都会生成“致命错误:在展开可选值时意外发现nil”。我确信名称、物种和dob确实包含控制台中显示的数据。你知道什么变量可以包含nil吗?我正在使用核心数据,对其不熟悉 屏幕: 实体: 它很可能是生成nil值的文本字段之一。输入一个断点并检查它们(和日期选择器)是否为零。您使用的是iboutlet,还是通过编程方式创建的?在屏幕截图中,它显示: override func viewWillDisappear(animated: Bool) { // n
它很可能是生成nil值的文本字段之一。输入一个断点并检查它们(和日期选择器)是否为零。您使用的是iboutlet,还是通过编程方式创建的?在屏幕截图中,它显示:
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
}
}
}
因此,这很可能是导致崩溃的原因。您是否查看了调试区域并检查了哪个变量为零?好奇的是,你能展示你的实体的截图吗?我想我找到了,它是你的
managedObjectContext
。您正在隐式展开它并导致它崩溃。您好,谢谢您的回复。我在调试屏幕上看不到任何为零的变量(请参阅更新的帖子中的图片)。嗯,您的配置文件是nil
(这是可以的),但是您的managedObjectContext
也是nil,这会导致它在使用时崩溃。您好,谢谢您的回复。我用过IB插座。从屏幕截图(上面更新的)中可以看到,调试器将文本字段显示为具有值。这一定是它,谢谢。我假设在创建实体时managedObjectContext会初始化自身。我想回到文档上来。
managedObjectContext = (NSManagedObjectContext!)nil