2012-05-15 38 views
0

我試圖將從XML解析器檢索到的字符串值轉換爲整數。不幸的是,我發現整數值並不反映字符串中的數字,我找不出原因。這裏是我的代碼:將字符串轉換爲int更改值

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 

這是爲什麼?

回答

2

該數字太大而不適合32位int。你想要做的是使用long代替:

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

編輯:

你實際上需要在Objective-C使用long long

long long maxTweetID = [[[_dataArray lastObject]tweetID]longLongValue]; 
+1

'NSString'上沒有'longValue'方法。有'integerValue',它在桌面上是64位,並且有'longLongValue'。 –

+0

是這樣的。我無法用此代碼更改值:double newestID =(maxID - 1.0);任何想法爲什麼? maxID也是雙倍的 –

1

字符串中的數字太大而無法存儲爲整數。 32位可能的最大整數是2.147.483.647。嘗試使用很長時間。

+0

真棒這個工程。後續問題:我不能從該值中減去1嗎? double newestID =(maxID - 1.0); NSLog(@「最新的ID是%f和maxID是%f」,newestID,maxID);有任何想法嗎? –