Я делаю игру, которая использует достижения Game Center, когда игрок достигает определенных баллов. Однако в ходе тестирования я понял, что баннеры отображаются каждый раз, когда они достигают определенного балла, независимо от того, сделали ли они это.Swift - loadAchievementsWithCompletionHandler
Думаю, мне нужно использовать loadAchievementsWithCompletionHandler, чтобы проверить, выполнено ли это достижение. Тем не менее, я немного не уверен, как это сделать. Это мой код:
func checkAchievements() {
var identifier : String? = nil
var index : Int!
var percentComplete : Double = 0
switch(score)
{
case 30:
identifier = "30"
index = 0 // Index for array made in loadAchievementsWithCompletionHandler
percentComplete = 100.0
case 60:
identifier = "60"
index = 1
percentComplete = 100.0
case 90:
identifier = "90"
index = 2
percentComplete = 100.0
case 120:
identifier = "120"
index = 3
percentComplete = 100.0
case 150:
identifier = "150"
index = 4
percentComplete = 100.0
default:
identifier = nil
}
if identifier != nil {
let achievement = GKAchievement(identifier: identifier)
achievement.showsCompletionBanner = true
GKAchievement.loadAchievementsWithCompletionHandler({(achievement, var error) in
if (error != nil) {
// Not sure what to put here
}
})
}
}
Я не совсем уверен, что если последняя часть прав до сих пор, и я не знаю, как получить доступ к массиву, так что я могу проверить, если достижение было завершено ,