我使用函數[GKAchievement loadAchievementsWithCompletionHandler:]
來恢復當前播放器在初始化中的成就。但完成亨德爾從未被調用過。永不完成[GKAchievement loadAchievementsWithCompletionHandler:]
- (void)loadAchievements { [GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) { if (error == nil) // !!-- if a breakpoint is set here, it would never be reached { @synchronized(_achievementsDictionary) { for (GKAchievement* achievement in achievements) [_achievementsDictionary setObject:achievement forKey:achievement.identifier]; NSLog(@"achievements loaded"); } } else { NSLog(@"Error in loading achievements: %@", error); } }]; }
然而,類似的功能,[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:]
效果很好:
- (void) retrieveAchievmentMetadata { [GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler: ^(NSArray *descriptions, NSError *error) { if (error != nil) { NSLog(@"Error in loading achievement descriptions: %@", error); } if (descriptions != nil) { @synchronized(_achievementsMetaDataDictionary) { for (GKAchievementDescription* desc in descriptions) { _achievementsMetaDataDictionary[desc.identifier] = desc; } } NSLog(@"achievement descriptions loaded"); } }]; }
可能是什麼問題?