将Core Data对象发送到“只读”Apple Watch App

时间:2015-10-22 20:36:55

标签: ios core-data watchkit watchconnectivity

我正在尝试开发一个watchOS 2应用程序以配合我的iOS应用程序。 iOS应用程序使用Core Data,而Apple Watch应用程序只是一个“只读”客户端,并显示来自iOS应用程序的数据。

我已经阅读了一些关于管理两个数据存储的事情,但这似乎有些过分。我只是想在发布时将数据传输到手表应用程序,然后在手机上发生变化时发送后台传输。

我的问题是如何将此信息发送到手表应用程序?我认为我不能将实际的数据对象发送到手表应用程序。我是否需要将对象转换为字典并通过WatchConnectivity API发送所有相关信息?

1 个答案:

答案 0 :(得分:1)

你的方法听起来不错。如果您不玩改变手表上的数据,那么在手表应用程序上镜像您的CoreData数据库确实会有点过分。

因此,使用Application Context通过后台传输发送数据是正确的选择。这只有一点需要注意:用于传输数据的updateApplicationContext方法只接受属性列表值的字典。换句话说,您只能发送可以添加到属性列表中的对象:

  • 阵列
  • 词典
  • 字符串
  • 数据(NSData)
  • 日期(NSDate)
  • 整数
  • 浮点值
  • 布尔

因此,在发送之前,您必须将Core Data对象转换为仅包含这些类型的字典。

这是一项努力,但即使您想在手表端镜像数据库,也必须这样做,因为使用watchOS2您不能再使用App Groups来共享CoreData文件。