我正在为我的孩子编写一个应用程序。我有Java背景,但十年没有专业编码。我不完全理解以下行是如何工作的,但它在Swift 1.2中有效:
leaderboardRequest.loadScoresWithCompletionHandler({ (scores:[AnyObject]!, error:NSError!) -> Void in
if (error != nil)
{
我需要帮助将其转换为可用的Swift 2.0代码。有人可以发布以下方法的工作Swift 2.0代码的翻译:
func getHighscores(leaderboardID: String) {
let leaderboardRequest = GKLeaderboard() as GKLeaderboard!
leaderboardRequest.identifier = leaderboardID
if leaderboardRequest != nil
{
leaderboardRequest.loadScoresWithCompletionHandler({ (scores:[AnyObject]!, error:NSError!) -> Void in
if (error != nil)
{
//println("error in alltimeHighscoreForLevel")
print(error.description)
self.updateLocalHighscore()
}
else
{
if(leaderboardRequest != nil){
if(leaderboardRequest.scores != nil ) {
if(leaderboardRequest.scores!.count > 0){
self.updateHighestForLevel(leaderboardRequest)
}
}
}
}
})
}
}
答案 0 :(得分:1)
我认为这对你有用:
leaderboardRequest.loadScoresWithCompletionHandler({ (scores, error) -> Void in
if let error = error {
// from here on your code should work
我认为loadScoresWithCompletionHandler
的定义已从旧代码更改。
答案 1 :(得分:1)
解决此问题的两种常用方法:
注释掉导致错误的行/方法并开始重新键入错误。代码完成将揭示该方法的正确签名。然后将旧行/方法中的相关代码复制并粘贴到新行/方法中,并解决潜在的错误/警告。
按⇧⌘0并在搜索字段中键入(或复制并粘贴)方法的开头,例如loadScoresWithCompletionHandler
。这将带您进入文档,您可以看到整个声明,包括讨论。