1

我正在从 Swift 1.2 到 Swift 2 重新创建我的应用程序,在前者中我使用了共享组等。

我现在正在尝试使用新的 WatchConnectivity,但遇到了一堵主要的砖墙..!!

在手机上,我的应用程序正在下载 json 并填充到我的数据存储中的 NSManagedObjects 中,并且一切正常……在手机上。

我愚蠢地虽然我可以使用 session.updateApplicationContext(dictionary) 方法.....但现在发现了

  1. 我必须使用 NSCoding
  2. NSCoding 和 NSManagedObjects 不是很好的搭配!

那么,请问 iOS9 和 Swift 2 中如何将 CoderData 数据从手机传输到手表的首选方式是什么?

请注意,手表无需修改、更新等数据,因为这一切都发生在手机上。手表只是显示它。

提前致谢....

4

1 回答 1

1
  1. 创建一个新的临时存储NSBinaryStoreType类型,并克隆NSManagedObjects 以转移到新存储中。
  2. 保存临时存储。
  3. 用于[WCSession transferFile:metadata:]临时文件,或[WCSession updateApplicationContext:]使用[NSData dataWithContentsOfFile:].

使用的主要原因NSBinaryStoreType是它将在支持的类型中占用最小的文件大小。

第二个原因是默认情况下NSSQLiteStoreType需要额外的shmwal文件。它使核心数据变得快速,但是它需要复杂的处理并且需要更多的文件大小。


PS。如果您决定使用[WCSession transferFile:metadata:],您必须在完成传输后删除临时文件。

于 2015-12-07T01:38:58.427 回答