【问题标题】:how to convert NSinteger to String [duplicate]如何将 NSinteger 转换为字符串 [重复]
【发布时间】:2010-09-29 12:18:23
【问题描述】:

我想将 int 转换为目标 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 ......

标签: iphone objective-c


【解决方案1】:

试试这个:

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

【讨论】:

  • n13 下面的答案是现代变体,而且更加优雅
【解决方案2】:
NSInteger n = 13;
NSString string = @(n).stringValue;

参考参见 Objective-C 文字 - 文字删除了许多使代码库混乱的丑陋样板代码:http://clang.llvm.org/docs/ObjectiveCLiterals.html

【讨论】:

  • 酷,感谢您向我介绍使用新语法的简单方法
  • 这实际上更慢且内存效率更低,因为每次您希望获得一个字符串值时都会创建一个NSNumber 的实例。进行了 1000000 次迭代的基准测试,使用NSNumber 方法获得了0.924962 秒,使用stringWithFormat 方法获得了0.668426 秒。如果您要在一个巨大的循环中使用它,这只是一个考虑因素。
  • ^ 有趣的基准测试,但我预计它的性能会更差。 30%的差异并没有那么大。显然,如果您要将数千或数万个数字转换为字符串,请不要这样做。数字到字符串转换的巨大循环对我来说听起来像是糟糕的代码,无论你如何进行转换。
  • 更好的解决方案,谢谢。这也与 32 位和 64 位交叉兼容,并且可以防止任何其他格式字符串的怪异!
【解决方案3】:

您可能希望将 myWord 声明为 NSMutableString。

【讨论】:

    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 2012-04-13
    • 2021-06-17
    • 2012-10-22
    • 2019-11-28
    • 2019-12-06
    • 2015-06-02
    • 2015-07-18
    相关资源
    最近更新 更多