0

我正在尝试将从 XML 解析器检索到的字符串值转换为整数。不幸的是,我发现整数值没有反映字符串中的数字,我不知道为什么。这是我的代码:

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

为什么是这样?

4

2 回答 2

2

这个数字太大了,无法容纳 32 位int。你想要做的是使用 along代替:

long maxTweetID = [[[_dataArray lastObject]tweetID]longValue];

编辑:

您实际上需要long long在Objective-C中使用:

long long maxTweetID = [[[_dataArray lastObject]tweetID]longLongValue];
于 2012-05-15T18:03:01.947 回答
1

字符串中的数字太大而无法存储为整数。32 位可能的最高整数是 2.147.483.647。尝试使用长。

于 2012-05-15T18:02:13.923 回答