我正在制作一个游戏中心的游戏应用程序。
我想问一下在app中保存整个对象(GKTurnBasedMatch)等游戏数据的好方法是什么?
因为,每个匹配都有matchData。我打算在NSDefault中保存这个GKTurnBasedMatch,但是没有好运从nsdefault中检索它。那么,有没有好办法呢?
你们可以请你给我一些建议吗?我的考虑只是如果我更新应用程序,应用程序更新后是否会删除NSDefault数据?答案 0 :(得分:2)
根本不存储这些对象。 Game Kit的“真相”是在游戏中心,所以你的应用程序应该从Game Center检索最新信息,以确保一切都是最新的。想象一下,如果您的用户有两个不同的设备,并在一台设备上的游戏上取得进展;如果其他设备依赖共享状态,那么它将错过更新。
当您的应用启动时,请使用+[GKTurnBasedMatch loadMatchesWithCompletionHandler:]
查找当前正在进行的匹配。如果您需要存储匹配的自定义数据,请将其存储在匹配项的matchData
属性中,以便与Game Center同步。
如果您想支持某种有限的离线显示,我会使用您需要的属性来显示和存储与匹配ID相关联的属性(因此,当您获得时,您可以将其匹配回实时比赛重新连接到Game Center。例如,您可以存储匹配参与者的姓名和当前消息。这些都只是字符串,因此您可以轻松地使用用户默认值中的匹配ID。