2012-08-01 2 views
6

ゲームの第1レベルを達成するための達成度を設定しましたが、レベルを再生して渡すと通知バナーが再び表示されます。Game Centerの達成度が複数回ロック解除されています

+0

[この](http://stackoverflow.com/questions/4768163/check-if-youve-already-unlocked-an-を見てみましょうゲームセンター達成ゲームキット)の質問は、成果が既にロックされていないかどうかを確認していないように聞こえます。 – thegrinner

答えて

11

このメソッドを使用:

-(void) reportAchievementWithID:(NSString*) achievementID { 

    [GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) { 

     if(error) NSLog(@"error reporting ach"); 

     for (GKAchievement *ach in achievements) { 
      if([ach.identifier isEqualToString:achievementID]) { //already submitted 
       return ; 
      } 
     } 

     GKAchievement *achievementToSend = [[GKAchievement alloc] initWithIdentifier:achievementID]; 
     achievementToSend.percentComplete = 100; 
     achievementToSend.showsCompletionBanner = YES; 
     [achievementToSend reportAchievementWithCompletionHandler:NULL]; 

    }]; 

} 
+0

あなたは私の日を救った –

-2

ユーザーがレベルをNSUserDefaultsに渡したことを保存し、ユーザーがレベルチェックNSUserDefaultsを自分のキーに渡した場合、そこにある場合、Game Centerの達成コードを実行しないでください。成果を提出する

+0

これはある程度は機能します。私は成績を完了してゲームセンターからサインアウトし、成績が完了したアカウントにログインした場合、新しいプレーヤーの獲得が不可能になることを発見しました:( –

+0

loadAchievementsWithCompletionHandler – erkanyildiz

関連する問題