I recently migrated to swift 2 after downloading Xcode 7 beta and i found 2 errors that I fixed using product>clean. I am still stuck with 2 Game Centre related errors。Below is my code to save the highscore. (If it helps, this code is present on two view controllers, with a difference in leaderboard id's and score variables)
func saveHighscore(score:Int) {
//check if user is signed in
if GKLocalPlayer.localPlayer().authenticated {
var scoreReporter = GKScore(leaderboardIdentifier: "ChineseWeather") //leaderboard id here
scoreReporter.value = Int64(Score) //score variable here (same as above)
var scoreArray: [GKScore] = [scoreReporter]
GKScore.reportScores(scoreArray, withCompletionHandler: {(error : NSError!) -> Void in
if error != nil {
print("error")
}
})
}
}
In the line where it starts with GKScore I receive the following error:
Cannot invoke 'reportScores' with an argument list of type '([GKScore], withCompletionHandler: (NSError!) -> Void)'
So I tried to fix this by adding scores: before scoreArray as follows:
GKScore.reportScores(scores: scoreArray, withCompletionHandler: {(error : NSError!) -> Void in
And it gives me the following error:
Missing argument for parameter 'withEligibleChallenges' in call
Help would be greatly appreciated and thank you in advance
According to the prerelease documentation, the method signature has changed to be:
This differs from the old documentation which stated:
Note the change to an optional NSError parameter as well as making the entire handler optional.
So you'll have to change your code to not have the explicit
error: NSError!
as your completion block parameter.