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。あなたがしたいことはlong代わりに使用することです:

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 に答える