0

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

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

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

4

1 回答 1

1

你的方法听起来不错。如果您不玩游戏来更改手表上的数据,那么在手表应用程序上镜像您的 CoreData 数据库确实是矫枉过正。

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

  • 大批
  • 字典
  • 细绳
  • 数据(NSData)
  • 日期 (NSDate)
  • 整数
  • 浮点值
  • 布尔值

因此,您必须先将 Core Data 对象转换为仅包含这些类型的字典,然后才能发送它们。

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

于 2015-10-23T16:29:41.047 回答