2014-09-10 2 views
0

У меня есть «бесконечная» игра, где пользователь должен получить как можно больше очков. Я достиг некоторых достижений, когда они достигают 30, 60, 90 пунктов и т. Д. Однако, когда пользователь достигает этих баллов, ни один баннер не показывает, что он завершил достижение, и он не отображается как завершенный в Game Center ,Swift - Достигнутый игровой центр Достижения

Как это сделать?

Это мой код:

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

Я никогда не использовал модуль ГК, но в то время как вы создали экземпляр объекта GKAchievement, я не вижу, ваш призыв сообщать/записать его с Game Center. Где достижение.reportAchievementWithCompletionHandler:?

+0

Xcode, похоже, не распознает 'reportAchievementWithCompletionHandler:'. Я набираю 'достижение. 'И начинаю вводить' reportAchievementWithCompletionHandler: ', но, похоже, это не так ???? – user2397282

+0

Метод экземпляра устарел в iOS7. Похоже, вы должны использовать метод * class * method reportAchievements: withCompletionHandler: и передать свой объект достижения в первом параметре (как массив одного элемента, по его мнению, если у вас есть только один, чтобы сообщить.) Возможно, попробуйте 'GKAchievement.reportAchievements ([достижение], withCompletionHandler: nil)'? –