【问题标题】:Game Center iPhone - Load Achievement ProgressGame Center iPhone - 加载成就进度
【发布时间】:2010-12-19 15:54:14
【问题描述】:

当 Game Center 成就达到/达到 100% 时,我的应用会发出通知,但它会在用户每次完成它时显示通知,但我只希望它在实际完成的第一次通知。

我在 Apple 文档中找到了这个: 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"];
}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 如果可能的话,我需要更多的指导,我一直在玩原始帖子中的代码,无法得到完整的证明。
    • 以为只会解锁一次成就。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多