游戏中心iPhone - 加载成就进展

时间:2010-12-19 15:54:14

标签: iphone objective-c notifications game-center achievements

我的应用程序在达到游戏中心成就/达到100%时发出通知,但是每次用户完成时都会显示通知,但我只希望它在实际完成时第一次通知。

明白了吗?

我在苹果文档中发现了这个: http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Achievements/Achievements.html#//apple_ref/doc/uid/TP40008304-CH7-SW11

但是我不太明白它如何帮助解决我的问题。

我只想在首次实现成就时调用此通知一次。所以只有在尚未实现的情况下才显示出来。

希望你能提供帮助,谢谢。

编辑:

我有这个来解锁成就:

- (void) 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).
             }
         }];
    }
}

用这个解锁:

[self reportAchievementIdentifier:identifier percentComplete:percent];

然后用这一行显示通知:

[[GKAchievementHandler defaultHandler] notifyAchievementTitle:@"Title" andMessage:@"Message"];

所以我只需在代码块中需要这样的东西吗?

if (achievement.completed != TRUE) {
      [[GKAchievementHandler defaultHandler] notifyAchievementTitle:@"Title" andMessage:@"Message"];
}

1 个答案:

答案 0 :(得分:0)

GKAchievement中有一个“已完成”的属性...尝试制作一个新的GKAchievement并检查它是否未完成,然后将其解锁。