【问题标题】:Using Core Data with watchOS 2.0在 watchOS 2.0 中使用 Core Data
【发布时间】:2015-08-30 07:03:26
【问题描述】:

我使用 WatchKit 1.0 制作了一个 iOS/Apple Watch 应用程序,该应用程序使用共享组容器和自定义框架来访问相同的 Core Data 存储。现在,在 watchOS 2.0 的过渡指南中,Apple 是这样说的:

如果您现有的 Watch 应用和 iOS 应用使用共享组容器或 iCloud 来交换数据,您必须更改在 watchOS 2 中交换该数据的方式。由于 WatchKit 扩展现在在 Apple Watch 上运行,因此扩展必须交换数据与 iOS 应用程序无线连接。您可以使用 NSURLSession 对象或使用 Watch Connectivity 框架来做到这一点,该框架支持您的 iOS 应用和 WatchKit 扩展之间的双向通信。

但是,这如何与 Core Data 一起工作?我是否需要维护两个独立的存储,一个在手表上的 Documents 文件夹中,一个在手机上,并使用 Watch Connectivity 框架来同步更改?我看到 watchOS 2.0 可以访问 Core Data 框架(它在Available Technologies 的列表中)......但我只是不确定当商店位于手机上时这有什么帮助。感谢任何帮助/指导!

【问题讨论】:

  • 您好,您解决了这个问题吗?请帮助代码如何访问watch kit OS 2中的核心数据

标签: ios watchkit watchos-2 watchos


【解决方案1】:

我建议使用用户信息后台传输设置同步,以便在首次运行传输存储后双向镜像每个数据库操作(如果需要)。

WWDC 会议 713 - 引入 Watch Connectivity 涵盖了所需的机制。他们组合的 API 不错。

【讨论】:

  • 感谢视频推荐;我刚刚看了它,它有很大帮助!我同意 API...它易于使用并且可以完成工作。
  • 你能帮忙在iPhone和Watch之间同步核心数据吗?
【解决方案2】:

是的,您必须维护两个独立的商店。如果任一端都是“只读”客户端并且 CoreData 数据存储很小且不经常更改,则您可能会使用 transferFile WatchConnectivity API 在每次更改时传输整个存储。

【讨论】:

  • 在watch kit os 2中我还需要使用共享组访问iPhone核心数据数据库吗?
  • 不,共享组仅适用于在同一设备上运行的进程。在这种情况下,您将不得不使用 WatchConnectivity 框架在进程之间进行协调
  • 那么我如何访问保存在 iPhone 应用程序中的核心数据数据库。
  • 你应该要求一个单独的 SO 来解决这个问题。评论部分不适合深入的内容
  • @ccjensen:如果可能的话,你能分享一个示例项目吗?我也面临这个问题,您的帮助将挽救我的生命。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2013-10-22
  • 2012-09-20
相关资源
最近更新 更多