检查您是否已经在Game Center / GameKit中解锁了成就

我已经在这个很长时间了。 我明白如何在Game Center中取得成就,甚至还有一个完整的消息系统。 但我不知道如何检查一个成就已经被解锁:(

显然这不起作用:

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

它始终跟踪“0”。

解锁成就确实奏效:

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

所以并不是我在整个成就方面犯了错误,只是GameKit不能告诉我成就是否已经被解锁了。

如果有人能帮助我,我将非常感激!

加载以前提交的成绩为当前login的用户您需要调用:

 [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开始的绝对最好的方式 – 成就和高分是看看苹果在线的演示项目: http : //developer.apple.com/library/ios/#samplecode/GKTapper/Introduction /Intro.html

看看这个代码 – 它很简单,可以快速掌握发生的事情,并且具有本地成就caching,提交给不同的排行榜等。

我即将开始实施这个自己。

从我所阅读的文档中,我认为你需要做的就是打电话

 loadAchievementsWithCompletionHandler: 

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