2011-01-22 87 views
3

我已經在相當長時間內陷入困境。我瞭解如何在Game Center中解鎖成就,並且我甚至還獲得了一個完整的郵件系統。但我無法弄清楚如何檢查是否有成就已經解鎖:(檢查您是否已經在Game Center/GameKit中解鎖了一項成就

顯然,這不工作:

GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; 
NSLog(@"%i",achievement.completed); 

它總是痕跡「0」

解鎖的成績不工作:

GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; 
achievement.percentComplete = 100; 

所以,這不是我在整個成就啄犯了一個錯誤,它只是的GameKit不能告訴我,如果成績已被解鎖與否。

如果有人能幫助我,我將不勝感激!

回答

0

即將開始實施這個我自己。

從我閱讀文檔的什麼,我認爲你需要做的就是調用

loadAchievementsWithCompletionHandler: 

http://developer.apple.com/library/ios/documentation/GameKit/Reference/GKAchievement_Ref/Reference/Reference.html#//apple_ref/doc/uid/TP40009959-CH1-SW1

+0

只是爲了確認,這正是如何做到這一點。我有一個管理GK交互的GameKitHelper類,包括成就。工作得很好。 – brindy 2011-01-26 01:12:22

4

加載當前登錄用戶需要調用先前提交的成果:

[GKAchievement loadAchievementsWithCompletionHandler: ^(NSArray *scores, NSError *error) 
{ 
    if(error != NULL) { /* error handling */ } 
    for (GKAchievement* achievement in scores) { 
     // work with achievement here, store it in your cache or smith 
    } 

}]; 

你知道從Game Center開始的絕對最好的方式 - 成就和高分者是看看demo proj ECT蘋果在線瀏覽: http://developer.apple.com/library/ios/#samplecode/GKTapper/Introduction/Intro.html

看一看代碼 - 這是很簡單迅速掌握髮生了什麼事情,它有當地的成就緩存,提交到不同的排行榜,等等,等等