如何将NSinteger转换为字符串

12

我想在Objective-C中将整数转换为字符串,应该如何实现。

我的代码。

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

}   

提前感谢。


我有另一个字符串变量名为myWord,我想将i的值赋给它...... - Nauman.Khattak
3个回答

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 是在32/64位系统上,对 intlong 数据类型的一个简单的 typedef 别名。


2
n13下面的答案是现代变体,更加优雅。 - Oly Dungey

14

1
酷,谢谢你介绍新语法的简便方式给我。 - Oly Dungey
这实际上是较慢且内存效率较低的,因为每次获取字符串值时都会创建一个 NSNumber 实例。进行了 1000000 次迭代的基准测试,使用 NSNumber 方法得到了 0.924962 秒,而使用 stringWithFormat 方法则只需 0.668426 秒。如果您将在大循环中使用它,这只是一个考虑因素。 - Majster
有趣的基准测试,但我本来预计它表现会更差。30%的差异并不算太大。显然,如果你要将成千上万个数字转换为字符串,就不要这样做。对我来说,将大量数字循环转换为字符串听起来像是糟糕的代码,无论你如何进行转换。 - n13
更好的解决方案,谢谢。这也是与32位和64位兼容的,并且对于任何其他格式字符串问题都是未来可靠的! - Ky -

2

你可能希望在循环外声明myWord为NSMutableString类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接