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

Sharing data between apple watch and iPhone using Core Data

我制作了以下 DataAccess.swift 文件以在框架内的 Apple Watch 和 iPhone 应用程序之间共享核心数据。 phone中的应用程序运行完美,而在apple watch运行时显示错误。

public  lazy var managedObjectModel: NSManagedObjectModel = {

    let proxyBundle = NSBundle(identifier: "group.com.qburst.toDoListAppGroup")
    **let modelURL = proxyBundle?.URLForResource("DateSaver", withExtension: "momd")!**

    return NSManagedObjectModel(contentsOfURL: modelURL!)!
    }()

对于上面的代码,我收到错误“致命错误:在展开可选值时意外发现 nil (lldb) " 用于代码中标记的行。

我已按照 GitHub

中的教程进行操作

任何人都可以告诉我代码有什么问题或 Watch 应用程序失败的原因吗?

我相信你误解了什么是包标识符,包标识符不是从光盘加载包的一种方式,它是一种在加载后识别包的方法。

在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)!
        }()

确保在 xcode 的构建功能选项卡下,在两个目标中都打开了应用程序组。