如何从NSNumber中获取整数

时间:2012-07-20 07:33:22

标签: iphone ios5 int nsnumber

我有这个代码,我保存了第二次计数并将其加载到结果视图控制器中。在我的结果视图控制器中,我把这段代码,

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

3 个答案:

答案 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未签名。