0

当 Game Center 成就达到/达到 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"];
}
4

1 回答 1

0

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

于 2010-12-19T17:56:33.417 回答