好吧,我已经注册了排行榜和成就(仅用于测试目的)。我使用GameCenterManager.h / .m和AppScoreValue.h
我的排行榜正常工作,收到所有分数,按顺序排列,但不会给予玩家成就。
我想举例说明如何报告成就,我试过这个:
我的观点确实加载方法如下所示:
-(void)viewDidLoad{
[GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) {
if (error != nil)
{
NSLog(@"ACHIEVEMENTS WERE NOT LOADED");
} else {
NSLog(@"ACHIEVEMENTS WERE LOADED");
}
if (achievements != nil)
{
NSLog(@"THERE ARE ACHIVEMENTS");
} else {
NSLog(@"THERE ARE NO ACHIVEMENTS %@", achievements);
}
}];
这是我的成就报告方法:
- (IBAction)reportAchievementIdentifier:(NSString*)identifier percentComplete:(float) percent {
GKAchievement *achievement = [[[GKAchievement alloc] initWithIdentifier: identifier] autorelease];
if (achievement)
{
achievement.percentComplete = percent;
[achievement reportAchievementWithCompletionHandler:^(NSError *error)
{
if (error != nil)
{
// Retain the achievement object and try again later (not shown).
}
}];
}
}
答案 0 :(得分:1)
当您报告成就时,您可以调用以下内容:
[self reportAchievementIdentifier:@"com.yourapp.yourachievement" percentComplete:100.0];
(您希望将标识符替换为您用于Game Center标识符的任何内容。)
我建议从Apple查看this documentation。它包含有关如何在您的应用中使用成就的完整教程。
基本的想法是,您的应用会报告用户完成成就的百分比。请注意,成就并不总是立即传播。
答案 1 :(得分:1)
GKAchievement *achievement =
[[GKAchievement alloc] initWithIdentifier: identifier];
achievement.showsCompletionBanner = YES;
那就是它!