28

我使用 WatchKit 1.0 制作了一个 iOS/Apple Watch 应用程序,它使用共享组容器和自定义框架来访问相同的核心数据存储。现在,在 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 可以访问核心数据框架(它在可用技术列表中)......但我只是不确定当商店位于手机上时这有什么帮助。任何帮助/指导表示赞赏!

4

2 回答 2

12

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

WWDC Session 713 - Introducing Watch Connectivity 涵盖了所需的机制。他们把很好的 API 放在一起。

于 2015-06-18T09:49:49.463 回答
11

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

于 2015-06-15T04:38:00.343 回答