【问题标题】:Sharing data between apple watch and iPhone using Core Data使用 Core Data 在 Apple Watch 和 iPhone 之间共享数据
【发布时间】:2015-04-14 09:25:47
【问题描述】:

我制作了以下 DataAccess.swift 文件,以便在框架内的 Apple Watch 和 iPhone 应用程序之间共享核心数据。手机中的应用程序运行完美,而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 应用失败的原因?

【问题讨论】:

  • 从错误来看,proxyBundle 似乎是 nil。
  • 此评论只是建议使用 MMWormhole 在主机应用程序和手表之间轻松共享数据。 github.com/mutualmobile/MMWormhole

标签: ios core-data watchkit apple-watch


【解决方案1】:

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

在Github上的demo代码中,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)!
        }()

【讨论】:

    【解决方案2】:

    确保在 xcode 的 Build Capabilities 选项卡下在两个目标中都打开了 App Groups。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多