Ios Gamecenter matchdata未更新

Ios Gamecenter matchdata未更新,ios,game-center,gamekit,ios6.1,Ios,Game Center,Gamekit,Ios6.1,我对GameKit有一个奇怪的问题。我想知道是否有其他人也遇到同样的问题。是虫子吗 我用游戏工具包实现了一个基本的回合制游戏。一个玩家邀请另一个玩家 + (void)findMatchForRequest:(GKMatchRequest *)request withCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandler 然后结束 - (void)endTurnWithNextP

我对
GameKit
有一个奇怪的问题。我想知道是否有其他人也遇到同样的问题。是虫子吗

我用游戏工具包实现了一个基本的回合制游戏。一个玩家邀请另一个玩家

+ (void)findMatchForRequest:(GKMatchRequest *)request withCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandler
然后结束

- (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
第二个玩家接受,游戏开始。第二名球员完成回合后,结束回合

- (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
等等

玩家即使使用自定义消息也会收到通知,一切正常

当应用程序(其他玩家)在后台,我点击通知横幅启动应用程序时,它也能工作

当应用程序在一台设备上后台运行,而另一台设备结束回合时,问题就会出现。第一台设备收到关于回合的通知,但当我启动应用程序(不是点击通知横幅,只是手动)并加载匹配时,我会得到旧的匹配数据

+ (void)loadMatchesWithCompletionHandler:(void (^)(NSArray *matches, NSError *error))completionHandler
我不会在我的应用程序中保留任何游戏数据,只是暂时的对象。我已尝试关闭两台设备上的应用程序并再次加载匹配项。他们从游戏中心的服务器获取不同的比赛数据。其中一个获取旧数据,另一个获取已结束回合的更新匹配数据

+ (void)loadMatchesWithCompletionHandler:(void (^)(NSArray *matches, NSError *error))completionHandler
我已经用下面的方法尝试了同样的事情,它是有效的,但是我不能结束这个回合

- (void)saveCurrentTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler

当我进行测试时,我不使用模拟器,只使用设备。SDK 6.1、iOS 6.0.1,当然还有沙盒。

loadMatchesWithCompletionHandler:调用只获取比赛的元数据,比如谁在比赛、比赛状态等。基本上是在概览视图控制器中显示的信息

要获取最新版本的比赛数据blob,请在显示游戏之前,在
GKTurnBasedMatch
对象上调用
loadMatchDataWithCompletionHandler:
。在某些情况下,这也必须在发送回合或结束比赛后完成