【发布时间】:2012-11-20 01:02:34
【问题描述】:
我正在使用这个库来报告我的应用程序中的分数和成就:https://github.com/csddavies/DDGameKitHelper
因此,在我的应用中,我会报告百分比以让用户知道他们距离完成成就还有多远。所以我做了这样的事情:
[[DDGameKitHelper sharedGameKitHelper] reportAchievement:@"Achievement1" percentComplete:totalTime/300.0f];
但似乎报告说我完成了成就“Achievement1”,尽管我没有。当我 NSLog totalTime/300.0f 时,我得到一个类似 0.563 和 NOT 100 的值。
所以现在我认为reportAchievement 方法一定有问题,所以我查看了它,但不确定可能是什么问题。以下是与reportAchievement相关的方法:
-(void) reportAchievement:(NSString*)identifier percentComplete:(float)percent
{
if (isGameCenterAvailable == NO)
return;
GKAchievement* achievement = [self getAchievement:identifier];
if (achievement.percentComplete < percent)
{
NSLog(@"new achievement %@ reported", achievement.identifier);
achievement.percentComplete = percent;
[achievement reportAchievementWithCompletionHandler:^(NSError* error)
{
[delegate onReportAchievement:(GKAchievement*)achievement];
}];
[self saveAchievements];
}
}
-(GKAchievement*) getAchievement:(NSString*)identifier
{
GKAchievement* achievement = [achievements objectForKey:identifier];
if (achievement == nil)
{
achievement = [[[GKAchievement alloc] initWithIdentifier:identifier] autorelease];
[achievements setObject:achievement forKey:achievement.identifier];
}
return achievement;
}
那么这里有什么东西会导致我的成就被报告为提前完成,即使它们真的没有?
谢谢!
编辑1:
2012-11-19 20:50:15.946 App[16894:907] percent: 0.005556
2012-11-19 20:50:15.947 App[16894:907] achievement percentComplete: 0.004861
2012-11-19 20:50:15.972 App[16894:907] percent: 0.000000
2012-11-19 20:50:15.973 App[16894:907] achievement percentComplete: 0.000000
2012-11-19 20:50:15.974 App[16894:907] percent: 0.026000
2012-11-19 20:50:15.974 App[16894:907] achievement percentComplete: 0.024000
2012-11-19 20:50:16.003 App[16894:907] percent: 0.002600
2012-11-19 20:50:16.004 App[16894:907] achievement percentComplete: 0.002400
2012-11-19 20:50:16.010 App[16894:907] percent: 0.000000
2012-11-19 20:50:16.011 App[16894:907] achievement percentComplete: 0.000000
2012-11-19 20:50:16.012 App[16894:907] percent: 0.016667
2012-11-19 20:50:16.012 App[16894:907] achievement percentComplete: 0.016667
2012-11-19 20:50:16.013 App[16894:907] percent: 0.000000
2012-11-19 20:50:16.014 App[16894:907] achievement percentComplete: 0.000000
【问题讨论】:
-
尝试添加 NSLog 以查看“百分比”值。并更新一个问题
-
好的,我添加了它,因此您可以看到出于某种奇怪的原因,某些百分比始终为 0.00000。现在也有 3 0.000000 个数字,这是有道理的,因为每次我报告它们时都会显示相同的 3 个成就。
标签: ios game-center percentage achievements