如何正确地将NSNumber转换为long long int?

时间:2014-10-11 18:06:02

标签: ios int nsnumber

我试图将NSNumber转换为long long int但我得到了意想不到的值..我做错了什么?

NSNumber *number = [[NSNumber alloc] initWithInt:60];
if ([self isTimeOver:number]) {
    [self sendPushTest];
}

-(BOOL)isTimeOver: (NSNumber*) interval {
    long long int theInterval = (long long int)interval;
    NSLog(@"THE INTERVAL %lld",theInterval); // I get -5764607523034233918 here.
}

1 个答案:

答案 0 :(得分:13)

使用-longLongValue,因为long long intlong long相同。

long long int theInterval = [interval longLongValue];

你永远不应该只尝试将NSNumber转换为原始类型(这样做会导致你得到的垃圾编号)。有关详细信息,请查看documentation