[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(@"実績の説明が読み込まれました"); } }]; }
何が問題なのですか?