我有这个代码,我保存了第二次计数并将其加载到结果视图控制器中。在我的结果视图控制器中,我把这段代码,
- (void) counting
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *loadSecond = [defaults objectForKey:@"saveSecond"];
NSLog(@"last save is %@", loadSecond); // in here, log is displaying 30 seconds
scratch = fmod(secondCount,3600);
hour = secondCount / 3600;
minute = scratch / 60;
second = fmod(scratch,60);
labelRecord.text = [NSString stringWithFormat:@"%d:%d:%d", hour , minute, second];
}
从上面看,NSLog显示我的上次保存计数30秒,它是正确的,但如何将30秒更改为secondCount?因为我想在labelRecord中使用它。
答案 0 :(得分:3)
更改此行
NSNumber *loadSecond = [defaults objectForKey:@"saveSecond"];
到
int loadSecond = [[defaults objectForKey:@"saveSecond"] intValue];
这假设密钥saveSecond的对象是NSNumber
。
答案 1 :(得分:1)
答案 2 :(得分:1)
快速查看the docuemntation会显示有NSUserDefaults
方法返回一个整数:
NSInteger loadSecond = [defaults integerForKey:@"saveSecond"];
NSInteger
只是int
。还有NSUInteger
未签名。