2012-09-11 65 views
1

進出口使用遊戲套裝獎勵的成就,當我完成一個級別我檢查這樣的成就:防止遊戲包在我的iPhone遊戲超過一次

if (timeSpentInLevel < 30) { 
     GKAchievement *ach = [[GKAchievement alloc] initWithIdentifier:@"cryptoquips.achievements.solutiontime.30s"]; 
     ach.percentComplete = 100.0; 
     ach.showsCompletionBanner = YES; 
     if (ach != NULL) { 
      [ach reportAchievementWithCompletionHandler:^(NSError *error) { 
       if (error!= nil) { 
        NSLog(@"achievement reporting failed"); 
       } 
      }]; 
     } 
    } 

但是當我在另一個層面上再次做到這一點,無論如何都會顯示橫幅,並且我認爲點數再次被授予。在iTunes Connect中,我將成就設定爲「可實現多次」,因此不應該允許這樣做。

如何防止此成就被多次授予?

+0

我也有這個問題,怎麼不止一次地實現一個玩家? – CReaTuS

回答

1

您可以使用loadAchievementsWithCompletionHandler:來做到這一點。它會獲得玩家已經獲得的成就的NSArray。枚舉這個數組並檢查它們中是否有任何一個是你想解鎖的成就,如果沒有,你可以解鎖它。