我正在尝试将从 XML 解析器检索到的字符串值转换为整数。不幸的是,我发现整数值没有反射(reflect)字符串中的数字,我不明白为什么。这是我的代码:
int maxTweetID = [[[_dataArray lastObject]tweetID]intValue];
NSLog(@"String Value of tweet ID: %@",[[_dataArray lastObject]tweetID]);
NSLog(@"Int Value of tweet ID: %i",[[[_dataArray lastObject]tweetID]intValue]);
这是我从调试器得到的信息:
2012-05-15 10:58:44.395 nearYou[2460:707] String Value of tweet ID: 202425636143370242
2012-05-15 10:58:44.396 nearYou[2460:707] Int Value of tweet ID: 2147483647
这是为什么?
最佳答案
该数字太大,无法容纳 32 位 int
。您想要做的是使用 long
代替:
long maxTweetID = [[[_dataArray lastObject]tweetID]longValue];
编辑:
你实际上需要在 Objective-C 中使用 long long
:
long long maxTweetID = [[[_dataArray lastObject]tweetID]longLongValue];
关于objective-c - 将 string 转换为 int 会更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10606281/