2010-09-29 81 views
12

我想傳達int字符串在目標c如何做到這一點。如何將NSinteger轉換爲字符串

我的代碼。

for (i=0; i<=200; i=i+10) { 
    // here i want to convet the value of i into string how to do this 

} 

在此先感謝。

+0

我有一個名爲myWord我想分配i值給它另一個字符串變量..... .. – 2010-09-29 12:19:57

回答

14

嘗試這種情況:

NSMutableString *myWord = [[NSMutableString alloc] init]; 
for (int i=0; i<=200; i=i+10) { 
    [myWord appendString:[NSString stringWithFormat:@"%d", i]]; 
    //... 
} 
//do something with myWord... 
[myWord release]; 

NSInteger是一個簡單的typedefintlong數據類型上64分之32位系統。

+2

n13的答案在下面是現代的變體,更加優雅 – 2014-09-03 15:11:31

2

您可能希望將myWord作爲NSMutableString聲明出循環。

11
NSInteger n = 13; 
NSString string = @(n).stringValue; 

參考看到Objective-C的文字 - 文字刪除大量醜陋的樣板代碼弄亂你的代碼:http://clang.llvm.org/docs/ObjectiveCLiterals.html

+1

很酷,感謝您向我介紹簡單的方法,使用新的語法 – 2014-09-03 15:09:57

+0

這實際上更慢,內存效率更低,因爲您每次創建「NSNumber」實例希望獲得一個字符串值。 做了1000000次迭代的基準測試,通過'NSNumber'方法獲得了'0.924962'秒,並使用'stringWithFormat'方法獲得了'0.668426'秒。如果你在一個巨大的循環中使用它,這只是一個考慮因素。 – Majster 2014-09-12 07:10:50

+0

^有趣的基準,但我本來期望它表現更差。 30%的差異並不多。顯然,如果你要將數千或數萬個數字轉換爲字符串,請不要這樣做。數字轉換爲字符串轉換的巨大循環聽起來像不好的代碼給我,不管你如何做轉換。 – n13 2014-09-23 04:32:06