我在初始化时使用该函数[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(@"已加载成就描述");
}
}];
}
可能是什么问题?