应用程序有时会在turnBasedMatchmakerViewController:didFindMatch:delegate方法崩溃

时间:2016-04-09 17:42:33

标签: ios

我使用Game Center制作了一款游戏。除了一件事,一切都很好。大约50次中的1次,当创建一个新的比赛时,无论是随机对手还是邀请朋友,我的应用程序可能会因此错误被打印到我的控制台而崩溃:致命错误:在解开可选项时意外发现nil值。 Xcode还将我重定向到崩溃的“位置”,即turnBasedMatchmakerViewController:didFindMatch:delegate方法。你可以看到崩溃发生在下面的代码行。

为什么大部分时间都在工作,而且很少有人会崩溃,我不知道。

修复这个错误真的很难,因为我可以花5个小时直接尝试使崩溃发生,但没有成功。我,我自己,在很长一段时间内没有发生过这次崩溃,但苹果审核小组在审核我的应用时发生了这次崩溃。

这是我的代码:

func turnBasedMatchmakerViewController(viewController: GKTurnBasedMatchmakerViewController, didFindMatch match: GKTurnBasedMatch) {
    currentMatch = match
    presentingViewController.dismissViewControllerAnimated(true,
        completion: nil)
    let firstParticipant = match.participants![0] as GKTurnBasedParticipant //This is where my app crashes!
    if firstParticipant?.lastTurnDate == nil {
        delegate!.enterNewGame(match)
    } else {
            if match.currentParticipant?.player!.playerID == GKLocalPlayer.localPlayer().playerID {
                delegate!.takeTurn(match)
            } else {
                delegate!.layoutMatch(match)
            }
        }
    }

修复此问题是我在App Store中首次使用我的应用程序的唯一方法,因此非常感谢所有类型的帮助

1 个答案:

答案 0 :(得分:0)

delegate!.更改为delegate?.