我有点沮丧。我使用GameCenter和Swift 3实现了成就
但是我收到了错误。
没有bundleID的包:( null)
我一直在关注诸如来自raywenderlich.com的教程,但无法找到任何有成就的Swift 3(我有排行榜工作)所以不知道我的代码是不正确的,或者我如何以编程方式返回捆绑ID以确认成就ID。
为了尝试在ViewDidLoad中使用,我编写了以下内容,而我的ViewController是一个GKGameCenterControllerDelegate
var achievements = [GKAchievement]()
let fullAchievement = GKAchievement(
identifier: "ReversedIDforMyApp.FullMarks")
achievements.append(fullAchievement)
GameKitHelper.sharedInstance.reportAchievements(achievements: achievements)
我创建了一个帮助来报告成就
func reportAchievements(achievements: [GKAchievement],
errorHandler: ((NSError?)->Void)? = nil) {
guard gameCenterEnabled else {
return
}
GKAchievement.report(achievements,
withCompletionHandler: errorHandler as? (Error?) -> Void)
}
}
我无法解决为什么会显示错误消息...
答案 0 :(得分:2)
Apple似乎需要很长时间才能设置Game Center成就,最后代码还可以。去图。
答案 1 :(得分:1)
我可能错了,但尝试在GKAchievement对象上设置百分比和横幅完成。
var achievements = [GKAchievement]()
let fullAchievement = GKAchievement(identifier:"ReversedIDforMyApp.FullMarks")
fullAchievement.percentComplete = 100 //Set this
fullAchievement.showsCompletionBanner = true //Set this
achievements.append(fullAchievement)
GameKitHelper.sharedInstance.reportAchievements(achievements: achievements)
func reportAchievements(achievements: [GKAchievement]) {
guard gameCenterEnabled else {
return
}
GKAchievement.report([achievements]) { (error) in
guard error == nil else {
print("Error in reporting achievements: \(error)")
return
}
}
}