在WatchOS 2.0中使用核心数据

我使用WatchKit 1.0创build了iOS / Apple Watch应用程序,该应用程序使用共享组容器和自定义框架来访问相同的Core Data存储。 现在,在watchOS 2.0的转换指南中,苹果说:

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

但是,这对Core Data是如何工作的? 我是否需要维护两个独立的商店,一个在手表上的Documents文件夹中,另一个在手机上,并使用Watch Connectivity框架来同步更改? 我看到,watchOS 2.0可以访问核心数据框架(它在可用技术列表中)…但我只是不知道这是如何帮助,当商店位于手机上。 任何帮助/指导表示赞赏!

是的,你将不得不维护两个独立的商店。 如果任何一方是“只读”客户端,并且CoreData数据存储很小并且很less发生更改,则可以使用transferFile WatchConnectivity API在每次更改时传输整个存储。

我build议使用用户信息后台传输设置同步,以在第一次运行时传输存储之后在两个方向上镜像每个数据库操作(如果需要)。

WWDC会议713 – 介绍Watch连通性涵盖了所需的机制。 他们已经把好的API放在一起。