2014-09-10 84 views
0

我有一個「無盡的」遊戲,用戶必須獲得儘可能高的分數越好。我取得了一些成就,當他們達到30,60,90分等時。但是,當用戶達到這些分數時,沒有橫幅顯示他們已經完成了成就,也沒有顯示在Game Center中完成。斯威夫特 - 完成遊戲中心成就

我該怎麼做?

這是我的代碼:

func checkAchievements() { 
    var identifier : String? = nil 
    var percentComplete : Double = 0 
    switch(score) 
    { 
    case 30: 
     identifier = "30" 
     percentComplete = 100.0 
    case 60: 
     identifier = "60" 
     percentComplete = 100.0 
    case 90: 
     identifier = "90" 
     percentComplete = 100.0 
    case 120: 
     identifier = "120" 
     percentComplete = 100.0 
    case 150: 
     identifier = "150" 
     percentComplete = 100.0 
    default: 
     identifier = nil 
    } 
    if identifier != nil { 
     let achievement = GKAchievement(identifier: identifier) 
     achievement.showsCompletionBanner = true 
     achievement.percentComplete = percentComplete 
    } 
} 

回答

4

我從來沒有使用GK模塊,但是當你有一個實例化對象GKAchievement,我沒有看到你的電話報告/記錄它與遊戲中心。 achievement.reportAchievementWithCompletionHandler在哪裏:?

+0

Xcode中似乎並沒有認識到'reportAchievementWithCompletionHandler:'。我輸入'achievement.'並開始鍵入'reportAchievementWithCompletionHandler:',但它似乎並不存在? – user2397282 2014-09-10 12:41:07

+0

實例方法在iOS7中已棄用。看起來你應該使用* class *方法reportAchievements:withCompletionHandler:並在第一個參數中傳遞你的成就對象(作爲一個項目的數組,如果你只有一個項目的話,可以試試)。 'GKAchievement.report成就([成就],withCompletionHandler:無)'? – 2014-09-10 12:44:18