3

我有一个应用程序,我想在两部 iPhone 之间交换通过 Core Data 管理的信息。

有没有人尝试过这个,如果有的话,什么被认为是最好的方法(即人们是否在文件中使用一些中间格式,如 XML 或 JSON,或者可以直接传输对象)。

如果这个问题的范围过于宽泛,我深表歉意,但我正处于需要决定转移方法的阶段,而且我没有使用此 API 的经验。

对于使用 GameKit 在设备之间传输对象的任何代码示例或任何此类示例的链接,我将非常感谢。

4

2 回答 2

5

您不能直接在设备之间传输 Core Data 对象,因为它们链接到它们的上下文和持久存储。您需要将数据转换为中间格式(可以像转换为 NSData 的 NSDictionary 一样简单)并将其推送到连接上,然后在另一端重构数据。

我个人认为 JSON 非常适合这种情况,因为您可以轻松地将 Core Data 对象图转换为一组 JSON 可消费对象(字典、数组、字符串和数字),这些对象可以轻松移动。

于 2010-03-01T20:04:15.827 回答
2

您是否正在寻找一次性转移?或者你想让两部 iPhone 在一段时间内保持同步(游戏?)。

我没有深入研究这个主题,但是如果您创建游戏,我建议您查看“核心数据:Apple 的 Mac OS X 上持久数据 API”一书中的“同步服务和核心数据”一章.

http://www.pragprog.com/titles/mzcd/core-data

GameKit 似乎只是通过蓝牙建立连接。如果您将来想使用 IP,请考虑使用 AsyncSockets。

http://code.google.com/p/cocoaasyncsocket/

于 2010-03-01T17:17:16.413 回答