我在初始化时使用该函数[GKAchievement loadAchievementsWithCompletionHandler:]
来恢复当前播放器的成就。但是,completionHander 从未被调用过。
- (void)loadAchievements { [GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) { if (error == nil) // !!-- 如果在此处设置断点,则永远不会到达 { @synchronized(_achievementsDictionary) { for (GKAchievement* 成就中的成就) [_achievementsDictionary setObject:achievement forKey:achievement.identifier]; NSLog(@"成就加载"); } } 别的 { NSLog(@"加载成就时出错:%@", error); } }]; }
但是,类似的功能[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:]
效果很好:
-(无效)retrieveAchievmentMetadata { [GKAchievementDescription 加载AchievementDescriptionsWithCompletionHandler: ^(NSArray *descriptions, NSError *error) { 如果(错误!=零) { NSLog(@"加载成就描述错误:%@", error); } 如果(描述!= nil) { @synchronized(_achievementsMetaDataDictionary) { for (GKAchievementDescription* desc in descriptions) { _achievementsMetaDataDictionary[desc.identifier] = desc; } } NSLog(@"已加载成就描述"); } }]; }
可能是什么问题?