我使用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可以访问核心数据框架(它位于Available Technologies列表中)...但是我不确定当商店位于手机上时它有多大帮助。任何帮助/指导表示赞赏!
答案 0 :(得分:12)
我建议使用用户信息后台传输设置同步,以便在首次运行时转移商店后,双向镜像每个数据库操作(如果需要)。
WWDC Session 713 - Watch Connectivity简介涵盖了所需的机制。很好的API,他们已经放在一起。
答案 1 :(得分:11)
是的,您必须维护两个独立的商店。如果任何一方是"只读"客户端和CoreData数据存储区很小,并且不经常更改您可能会使用transferFile WatchConnectivity API在每次更改时传输整个存储。