将 serverOutputValue 拉取为 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。我不知道由于某种原因它正在解析不同的值:(
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,NSInteger 是一种原始类型,因此您不应将 userid 声明为指针(通过将星号放在前面)。其次,值 2381164503 对于 NSInteger 来说太大了(最大值为 2147483647)。
尝试使用
long long
代替: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: