[GKAchievement loadAchievementsWithCompletionHandler:]初期化で現在のプレイヤーの実績を復元する機能を使用しています。しかし、completionHandler は呼び出されませんでした。
- (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:]うまく機能します。
- (void) 達成メタデータの取得
{
[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:
^(NSArray *説明、NSError *エラー) {
if (エラー != nil)
{
NSLog(@"実績の説明の読み込み中にエラーが発生しました: %@", error);
}
if (説明 != nil)
{
@synchronized(_achievementsMetaDataDictionary)
{
for (GKAchievementDescription* 説明の desc)
{
_achievementsMetaDataDictionary[desc.identifier] = desc;
}
}
NSLog(@"実績の説明が読み込まれました");
}
}];
}
何が問題なのですか?