我试图将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.
}
答案 0 :(得分:13)
使用-longLongValue
,因为long long int
和long long
相同。
long long int theInterval = [interval longLongValue];
你永远不应该只尝试将NSNumber
转换为原始类型(这样做会导致你得到的垃圾编号)。有关详细信息,请查看documentation。