GameKit成就通知不显示:此前正常,调整代码后失效
Game Center成就通知不显示排查求助
昨天我成功实现了Game Center成就通知功能,但今天调整代码后,通知不再显示。不过成就仍能正常同步到Game Center,我找不到submitAchievements()函数的问题,现将代码附上:
GKAchievement.loadAchievements(completionHandler: { (achievements: [GKAchievement]?, error: Error?) in let fifteenID = "15" var fifteenAchievement: GKAchievement? = nil // 查找已存在的成就 fifteenAchievement = achievements?.first(where: { $0.identifier == fifteenID}) // 不存在则创建新成就 if fifteenAchievement == nil { fifteenAchievement = GKAchievement(identifier: fifteenID) } if score >= 15 { fifteenAchievement?.showsCompletionBanner = true fifteenAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let thirtyID = "30" var thirtyAchievement: GKAchievement? = nil // 查找已存在的成就 thirtyAchievement = achievements?.first(where: { $0.identifier == thirtyID}) // 不存在则创建新成就 if thirtyAchievement == nil { thirtyAchievement = GKAchievement(identifier: thirtyID) } if score >= 30 { thirtyAchievement?.showsCompletionBanner = true thirtyAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let fiftyID = "50" var fiftyAchievement: GKAchievement? = nil // 查找已存在的成就 fiftyAchievement = achievements?.first(where: { $0.identifier == fiftyID}) // 不存在则创建新成就 if fiftyAchievement == nil { fiftyAchievement = GKAchievement(identifier: fiftyID) } if score >= 50 { fiftyAchievement?.showsCompletionBanner = true fiftyAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let hundredID = "100" var hundredAchievement: GKAchievement? = nil // 查找已存在的成就 hundredAchievement = achievements?.first(where: { $0.identifier == hundredID}) // 不存在则创建新成就 if hundredAchievement == nil { hundredAchievement = GKAchievement(identifier: hundredID) } if score >= 100 { hundredAchievement?.showsCompletionBanner = true hundredAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let negativeID = "1" var negativeAchievement: GKAchievement? = nil // 查找已存在的成就 negativeAchievement = achievements?.first(where: { $0.identifier == negativeID}) // 不存在则创建新成就 if negativeAchievement == nil { negativeAchievement = GKAchievement(identifier: negativeID) } if score < 0 { negativeAchievement?.showsCompletionBanner = true negativeAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let clawID = "69" var clawAchievement: GKAchievement? = nil // 查找已存在的成就 clawAchievement = achievements?.first(where: { $0.identifier == clawID}) // 不存在则创建新成就 if clawAchievement == nil { clawAchievement = GKAchievement(identifier: clawID) } if claw { clawAchievement?.showsCompletionBanner = true clawAchievement?.percentComplete = 100 } // 插入上报进度的代码 if error != nil { // 处理错误 print("Error: \(String(describing: error))") } let achievementsToReport: [GKAchievement] = [fifteenAchievement!, thirtyAchievement!, fiftyAchievement!, hundredAchievement!, clawAchievement!, negativeAchievement!] // 向Game Center上报进度 GKAchievement.report(achievementsToReport, withCompletionHandler: {(error: Error?) in if error != nil { // 处理错误 print("Error: \(String(describing: error))") } }) })
所有成就的showsCompletionBanner属性已设为true,但通知仍未出现。
内容的提问来源于stack exchange,提问作者Ness Earthbound
相关产品推荐
相关产品推荐

