0

我有这段代码,我保存总秒数并将其加载到结果视图控制器中。在我的结果视图控制器中,我输入了这段代码,

- (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 中使用它。

4

3 回答 3

3

更改此行

NSNumber *loadSecond = [defaults objectForKey:@"saveSecond"];

int loadSecond = [[defaults objectForKey:@"saveSecond"] intValue];

这假定键 saveSecond 的对象是NSNumber.

于 2012-07-20T07:35:50.753 回答
1

快速浏览一下文档会发现有一个NSUserDefaults返回整数的方法:

NSInteger loadSecond = [defaults integerForKey:@"saveSecond"]; 

NSInteger is just an int. There's also NSUInteger which is unsigned.

于 2012-07-20T07:45:01.737 回答