当 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"];
}