微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在更新到iOS 8.3和Swift 1.2之后,endTurnWithNextParticipants不会触发receiveTurnEventForMatch

如何解决在更新到iOS 8.3和Swift 1.2之后,endTurnWithNextParticipants不会触发receiveTurnEventForMatch

Apple已对错误报告做出了回应:

请在iOS 8.4 beta 4(内部版本:12H4125a)中验证此问题,并使用结果更新您的错误报告,网址http://bugreport.apple.com/

iOS 8.4 beta 4(Build:12H4125a)https://developer.apple.com/ios/download/发表于2015年6月9日

不幸的是,我无法在我的设备上安装iOS 8.4 beta 4,无法告诉您它是否已修复。如果您有任何机会,请分享

我已向Apple提交了有关此问题的错误报告,并将在他们做出回应后在此处发布更新。

我的回合制游戏具有此解决方法。看起来很糟,但它又能正常工作-也许对您有帮助。

- (void)sendGameStateWith:(NSMutableDictionary *)data
{
    if (self.match) {
        NSData *matchdata = [NSKeyedArchiver archivedDataWithRootObject:data];

        GKTurnBasedParticipant *opponent = [self.match.participants objectAtIndex:0];
        GKTurnBasedParticipant *localPlayer = [self.match.participants objectAtIndex:1];
        if ([self.localPlayer.playerID isEqualToString:opponent.playerID]) {
            opponent = [self.match.participants objectAtIndex:1];
            localPlayer = [self.match.participants objectAtIndex:0];
        }

        // HINT: Remove this workaround when Apple has fixed it. 
        [self.match saveCurrentTurnWithMatchData:matchdata completionHandler:^(NSError *error) {
            if (error) {
                NSLog(@"Error on saveCurrentTurnWithMatchData");
                [self sendGameStateWith:data];

            } else {
                [self.match endTurnWithNextParticipants:[NSArray arrayWithObjects:opponent, localPlayer, nil] turnTimeout:turnTimeout matchData:matchdata completionHandler:^(NSError *error) {
                    if (error) {
                        NSLog(@"Error: Send Game Center state");
                    } else {
                        NSLog(@"Sent Game Center state");
                    }
                }];
            }
        }];
    }
}

解决方法

自从更新到iOS8.3以来,有没有人注意到基于回合的比赛通知的任何更改?在我的应用中,当我调用endTurnWithNextParticipants时,在升级之前,这导致通知发送给对手,这将触发在他们的设备上调用receiveTurnEventForMatch,但情况不再如此。当对手终止应用程序并重新启动应用程序时,他们可以看到轮到他们了,因此游戏中心的比赛已按照参与顺序正确更新,但这似乎不再动态生效。

有人看到吗?我希望这只是游戏中心沙盒环境中的一个临时故障。

我向苹果提出了一个错误报告,以查看它实际上是否是错误,或者我们需要了解的iOS8.3中是否存在一些未记录的行为更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。