加载模型文件时崩溃。模型是从其他项目复制的
Crashing when loading model file. Model was copied from other project
我经常在将模型文件从一个项目移动到另一个项目时发生崩溃。知道为什么吗?如果我从 Xcode 创建它并手动创建实体,它不会发生。为什么?
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
更新
文件扩展名不是momd
,而是xcdatamodel
。但这应该不是问题。 Model
和同名的上一个项目正在运行。
文件已添加到目标:
并且在控制台中您可以看到它存在于正确的位置:
您崩溃的行尝试从应用程序包中加载名为 Model.momd
的文件,如果该文件不存在则抛出异常 ("unexpectedly found nil while unwrapping an Optional value")
你是
- 使用错误的文件名,即您的模型文件存在但未命名
Model.momd
,或
- 使用正确的文件名,但忘记在将模型文件添加到新项目时将其包含在应用程序的目标中。意思是,该文件存在于您的 Xcode 项目中,但您没有告诉 Xcode 在构建应用程序时实际包含它。
您可以通过在 Xcode 的 window 左侧的文件浏览器中选择未编译的模型文件(在您的情况下为 Model.xcdatamodel
)来检查第二种可能性,然后查看右侧的文件检查器,在 "Target Membership" 下。确保选中应用程序目标:
我找到了 this,但没有用。顺便说一句,编译有问题。我删除了模型文件,添加了一个新的空模型,该模型具有以前的命名但现在来自 Xcode。然后手动编辑模型文件,并插入相关的xml标签。
我经常在将模型文件从一个项目移动到另一个项目时发生崩溃。知道为什么吗?如果我从 Xcode 创建它并手动创建实体,它不会发生。为什么?
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
更新
文件扩展名不是momd
,而是xcdatamodel
。但这应该不是问题。 Model
和同名的上一个项目正在运行。
文件已添加到目标:
并且在控制台中您可以看到它存在于正确的位置:
您崩溃的行尝试从应用程序包中加载名为 Model.momd
的文件,如果该文件不存在则抛出异常 ("unexpectedly found nil while unwrapping an Optional value")
你是
- 使用错误的文件名,即您的模型文件存在但未命名
Model.momd
,或 - 使用正确的文件名,但忘记在将模型文件添加到新项目时将其包含在应用程序的目标中。意思是,该文件存在于您的 Xcode 项目中,但您没有告诉 Xcode 在构建应用程序时实际包含它。
您可以通过在 Xcode 的 window 左侧的文件浏览器中选择未编译的模型文件(在您的情况下为 Model.xcdatamodel
)来检查第二种可能性,然后查看右侧的文件检查器,在 "Target Membership" 下。确保选中应用程序目标:
我找到了 this,但没有用。顺便说一句,编译有问题。我删除了模型文件,添加了一个新的空模型,该模型具有以前的命名但现在来自 Xcode。然后手动编辑模型文件,并插入相关的xml标签。