2011-05-03 28 views
6

我有NSString值,我想將其轉換爲unsigned long。我用下面將NSString轉換爲無符號長整數

NSString *updateId = [NSString stringWithFormat:@"%@",[tweet updateId]]; 

NSLog(@"%@",[tweet updateId]); 
unsigned long tweetId = [updateId longLongValue]; 
NSLog(@"ButtonPressed: .......%llu",tweetId); 

但它沒有返回正確的值代碼...

+0

什麼回報?那麼updatedId返回的數據類型是什麼? – Macmade 2011-05-03 07:18:20

+0

updateId正在返回NSstring ..並且我的輸出是65278530740695040 2011-05-03 12:47:56.704 MiniTwit [2949:207] ButtonPressed:....... 6071468025620606976 – Abhishek 2011-05-03 07:23:46

+0

要請求支持從NSString讀取無符號值,請訪問http://bugreport.apple.com並提交雷達:// 2264733對組件'Foundation |「的欺騙X'。 – 2013-01-23 05:46:37

回答

11

可可方式是使用[NSNumberFormater]1

NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init]; 
NSLog(@"%lu", [[formatter numberFromString:updateId] unsignedLongValue]); 
[formatter release]; 

有什麼的[鳴叫updateId]類型?
它是否包含任何本地化(例如千分隔符)?
如果是這樣,你可以配置NSNumberFormatter實例與setLocale:

+0

[tweet updateid]是NSString類型 – Abhishek 2011-05-03 07:51:06

+0

NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init]; NSLog(@「%lu」,[[formatter numberFromString:updateId] unsignedLongValue]); [_engine deleteUpdate:formatter]; [formatter release];不工作給予警告 – Abhishek 2011-05-03 07:53:51

+1

爲什麼你在另一個NSString包裝呢?您可以直接將[tweet updateId]傳遞給numberFromString:。 – 2011-05-03 07:55:07

0

您可以嘗試從C STDLIB的atol功能:

unsigned long tweetId = atol([ updateId cStringUsingEncoding: NSASCIIStringEncoding ]); 

順便說一下,你的NSLog應該是lu,而不是llu

+0

lu也返回不正確的值 – Abhishek 2011-05-03 07:32:09

+0

您是否嘗試過使用atol? – Macmade 2011-05-03 07:32:47

+0

我應該包含哪個頭文件?這是警告NSString可能不會響應CStringUsingEncoding – Abhishek 2011-05-03 07:36:40

0
unsigned long tweetId = [[NSNumber numberWithInteger:[updateId integerValue]] unsignedLongValue]; 
相關問題