2011-01-09 154 views
2

我執行此代碼:NSString到NSNumber:我在這裏做錯了什麼?

NSLog(@"Converting line number %@ to int...",currentValue); 

NSNumber * currentNumber = [NSNumber numberWithInt:[currentValue integerValue]]; 

NSLog(@"Converted integer %d",currentNumber); 

它輸出這樣的:

Converting line number 211 to int... 
Converted integer 62549488 

我在做什麼錯在這裏?在這種情況下,currentValue是一個值爲211的NSMutableString。

回答

11

「currentNumber」是您嘗試使用%d打印的對象。

NSLog(@"Converted integer %d", [currentNumber intValue]); 
+2

或者你可以做`的NSLog(@ 「轉換整數%@」,currentNumber);` – donkim 2011-01-09 22:48:20

5

儘管您的問題已經得到解答,但您的代碼還有其他錯誤。

可可方法與intinteger之間在名稱上存在差異。

INTnumberWithIntintValue處理INT S上的人。

整數numberWithIntegerintegerValue處理NSInteger的 S中的那些。

編程32/64位程序時,這可能是錯誤和不一致的根源。

只是要注意和一致的東西。

2

NSNumber是繼承NSObject類。它不是整​​數。所以你可以使用「%@」而不是%d。

你改變你的NSLog行,如下所示,

NSLog(@"Converted integer %@",currentNumber); 
相關問題