我已经制作了以下DataAccess.swift文件,以便在框架内的Apple Watch和iPhone应用程序之间共享Core Data。手机中的应用程序运行完美,而苹果手表运行时显示错误。
public lazy var managedObjectModel: NSManagedObjectModel = {
let proxyBundle = NSBundle(identifier: "group.com.qburst.toDoListAppGroup")
**let modelURL = proxyBundle?.URLForResource("DateSaver", withExtension: "momd")!**
return NSManagedObjectModel(contentsOfURL: modelURL!)!
}()
对于上面的代码,我收到错误"致命错误:在展开Optional值时意外发现nil (lldb)"对于代码中的标记行。
我从GitHub
开始关注本教程有人能告诉我代码有什么问题或Watch应用程序失败的原因吗?
答案 0 :(得分:1)
我相信你误解了捆绑标识符的含义,捆绑标识符不是从光盘加载捆绑包的方法,它是在加载后识别捆绑包的一种方法。
在Github上的演示代码中,通过这种方式检索NSManagedObjectModel
:
public 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("CoreDataWatch", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
答案 1 :(得分:1)
确保在xcode的Build Capabilities标签下打开了两个目标中的App Groups。