使用Core Data在Apple Watch和iPhone之间共享数据

时间:2015-04-14 09:25:48

标签: ios core-data watchkit apple-watch

我已经制作了以下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应用程序失败的原因吗?

2 个答案:

答案 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。