2010-09-29 61 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