我正在制作一个用户必须尽快完成任务的游戏,我希望显示用户的最佳时间并更新他或她获得新时间的最佳时间。我有:
float BestTimeValue
float starttime
-(void)start{
starttime += 0.001;
timelabel.text = [NSString stringWithFormat:@"%.3f", starttime];
}
if (starttime < BestTimeValue) {
[[NSUserDefaults standardUserDefaults] setObject:starttime forKey:[@"BestTimeValue"];
}
并在我的viewdidload中:
BestTimeValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"BestTimeSaved"];
starttime在游戏结束时停止,但该值不会显示在标签中。谢谢!
答案 0 :(得分:0)
您不能将float
与setObject:forKey:
和objectForKey:
方法一起使用。
使用setFloat:forKey:
和floatForKey:
。
if (starttime < BestTimeValue) {
[[NSUserDefaults standardUserDefaults] setFloat:starttime forKey:[@"BestTimeValue"];
}
BestTimeValue = [[NSUserDefaults standardUserDefaults] floatForKey:@"BestTimeSaved"];
答案 1 :(得分:0)
[[NSUserDefaults standardUserDefaults] setObject:forKey:]顾名思义,它只接受像NSString,NSNumber,NSDictionary等对象。
所以你必须使用其他方法[[NSUserDefaults standardUserDefaults] setFloat:forKey]或将浮点数保存在NSNumber中以使用setObjet方法[NSNumber numberWithFloat:thefloat];