将serverOutputValue拉为NSInteger

时间:2011-04-26 15:22:24

标签: objective-c nsinteger

何大家我试图通过我的iphone应用程序调用php脚本,返回一个整数值作为serverOutput

NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];    
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

    NSInteger * userid  = [serverOutput integerValue];

    NSLog(@" %d" , userid);

但是如果我打印我的serverOutput字符串它是 2381164503 但我的NSLog(@“%d”,userid)打印我 2147483647 。由于某种原因,我不知道它正在解析不同的值:(

1 个答案:

答案 0 :(得分:0)

首先,NSInteger是一种原始类型,因此您不应将userid声明为指针(通过将星号放在前面)。其次,值为2381164503对于NSInteger而言太大(最大值为2147483647)。

尝试使用long long代替:

long long userid = [serverOutput longLongValue];
NSLog(@" %lld" , userid);  //use %lld instead of %d