我更新到Swift 2后,Game Center不接受我的代码

时间:2015-10-02 11:41:08

标签: ios swift2 game-center

这是我的代码:

if GKLocalPlayer.localPlayer().authenticated {
            if mode == 60 {
                var scoreReporter2 = GKScore(leaderboardIdentifier: "countrymaster60") //leaderboard id here

                scoreReporter2.value = Int64(score) //score variable here (same as above)
                var scoreArray: [GKScore] = [scoreReporter2]
                GKScore.reportScores(scoreArray, withCompletionHandler: {(error : NSError!) -> Void in
                    if error != nil {
                        print("error")
                    }

它给出的错误信息:

  

无法使用类型的参数列表调用“reportScores”   '([GKScore],withCompletionHandler :( NSError!) - > Void)'

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

文档说方法签名是:

class func reportScores(_ scores: [GKScore], withCompletionHandler completionHandler: ((NSError?) -> Void)?)

因此,您需要在完成处理程序中将error变量设为Optional。

更改

GKScore.reportScores(scoreArray, withCompletionHandler: {(error : NSError!) -> Void in 

GKScore.reportScores(scoreArray, withCompletionHandler: {(error : NSError?) -> Void in