使用GameKit在iPhone之间传输CoreData数据

时间:2010-03-01 12:24:26

标签: iphone objective-c core-data transfer gamekit

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

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

如果问题在范围内显得过于夸张,我表示道歉,但我正处于需要决定转让方法的阶段,而且我没有这种API的经验。

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

您正在寻找一次转帐吗?或者您是否希望让两部iPhone在一段时间内保持同步(游戏?)。

我没有太多关注这个主题,但是如果你创建一个游戏,我建议你看一下“核心数据:用于在Mac上保存数据的Apple的API”一书中的“同步服务和核心数据”一章OS X“。

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

GameKit似乎只是通过蓝牙建立连接。如果您希望将来使用IP,请查看使用AsyncSockets。

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