首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏中心matchData属性的GKTurnBasedMatch问题

游戏中心matchData属性的GKTurnBasedMatch问题
EN

Stack Overflow用户
提问于 2013-02-07 01:26:17
回答 1查看 1.4K关注 0票数 11

我正在用GKTurnBasedMatch matches创建一个游戏中心游戏。我遇到了一个问题,GKTurnBasedMatch上的readonly matchData属性似乎没有正确存储在游戏中心服务器上。

我使用this StackOverflow answermatchData NSData上生成md5校验和,在与游戏中心服务器之间发送和接收时都是如此。

当我使用NSData实例方法endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:发送matchData时,我注意到了GKTurnBasedMatch游戏数据对象的校验和。

然后对手使用GKTurnBasedMatch的类方法loadMatchesWithCompletionHandler:检索匹配项,当匹配项到达时(没有错误),我再次记录校验和。

两个校验和不匹配,并且根据重建的游戏,结果数据显然不相同。我已经检查了两个帐户,确认我的GKTurnBasedMatch对象上的matchID属性是相同的。

我还执行了以下测试:

代码语言:javascript
复制
NSLog(@"matchID: %@ matchData checksum: %@",
                    match.matchID, 
                    [Utilities md5StringFromData:match.matchData]);

// match is a valid `GKTurnBasedMatch` object.
[match endTurnWithNextParticipants: @[ opponent ] // My `GKTurnBasedParticipant` opponent
                       turnTimeout:600
                         matchData:data // This is a valid NSData object
                 completionHandler:^(NSError *error) {
                      if (nil != error) {

                          NSLog(@"%@", error);

                      } else {

NSLog(@"Successfully ended turn.");

[GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error) {

    if (nil != error) {

        NSLog(@"Error getting matches: %@", [error localizedDescription]);

    } else {

        for (GKTurnBasedMatch *match in matches) {

            NSLog(@"matchID: %@ matchData checksum: %@", 
                        match.matchID, 
                        [Utilities md5StringFromData:match.matchData]);

        }

    }
}];

                      }
}];

在这个示例中,我以数据结束回合,并立即从Game Center检索匹配,数据匹配。然而,当我从对手的游戏中心账户和设备访问matchData时,它们是不同的。

有没有人遇到过这样的事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 03:27:11

我在Apple's Dev Forums上发现了解决方案。

事实证明,loadMatchesWithCompletionHandler:并不总是获取最新的matchData。要确保您拥有最新的版本,请确保对GKTurnBasedMatch对象调用loadMatchDataWithCompletionHandler:方法。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14735127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档