如何最好地将NSManagedObjects从iPhone传输到Watch

时间:2015-12-04 15:14:49

标签: core-data swift2 ios9 watch-os-2 watchconnectivity

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

我现在正在尝试使用新的WatchConnectivity并且遇到了一个主要的砖墙.. !!

在手机上,我让应用程序正在下载json并在我的数据存储中填充NSManagedObjects,一切都运行良好......在手机上。

我愚蠢但我可以使用session.updateApplicationContext(字典)方法.....但现在已经找到了

  1. 我必须使用NSCoding
  2. NSCoding和NSManagedObjects不是很匹配!
  3. 那么,请问iOS9和Swift 2中首选的方式是如何将CoderData数据从手机传输到手表?

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

    提前致谢....

1 个答案:

答案 0 :(得分:1)

  1. 使用NSBinaryStoreType类型创建新的临时商店,并克隆NSManagedObject以转移到新商店。
  2. 保存临时商店。
  3. 使用[WCSession transferFile:metadata:]临时文件,或使用[WCSession updateApplicationContext:][NSData dataWithContentsOfFile:]的其他转移方式。
  4. 使用NSBinaryStoreType的主要原因是它将在支持的类型中占用最小的文件大小。

    第二个原因是NSSQLiteStoreType默认需要额外的shmwal个文件。它使核心数据快速,但它需要棘手的处理并需要更多的文件大小。

    PS。如果您决定使用[WCSession transferFile:metadata:]该怎么办?您必须在完成转移后删除临时文件。