将 serverOutputValue 拉取为 NSInteger

发布于 2024-11-03 13:43:06 字数 509 浏览 3 评论 0原文

大家好,我试图通过我的 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。我不知道由于某种原因它正在解析不同的值:(

Ho Everybody I aam trying to call php script thorugh my iphone application that return me a integer value as serverOutput

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

    NSInteger * userid  = [serverOutput integerValue];

    NSLog(@" %d" , userid);

But if my print my serverOutput string it is 2381164503 but my NSLog(@" %d" , userid) prints me 2147483647. I dont know for some reason it is parsing different value :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蒗幽 2024-11-10 13:43:06

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

尝试使用 long long 代替:

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

First, NSInteger is a primitive type so you shouldn't declare userid as a pointer (by putting the asterisk in front). Second, the value 2381164503 is too big for an NSInteger (max is 2147483647).

Try using a long long instead:

long long userid = [serverOutput longLongValue];
NSLog(@" %lld" , userid);  //use %lld instead of %d
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文