2014-09-10 76 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