【问题标题】:NSString format questionNSString 格式问题
【发布时间】:2011-02-25 19:12:44
【问题描述】:

这里有两种方法可以创建NSString

NSString *sBody = [NSString stringWithString:@"Hello"]

对比

NSString *sBody = @"Hello"

大多数时候,我以第一种方式看待它。但是使用第二个也“干净”,还是不使用更好?

谢谢,祝你有美好的一天!

【问题讨论】:

    标签: objective-c coding-style


    【解决方案1】:

    它们是等价的。使用文字的代码更少(第二个示例),所以我会使用它。

    【讨论】:

      【解决方案2】:

      同样,第一种方式是帮助编译器,但它已经在优化字符串变量方面做得很好。

      【讨论】:

      • 第一个例子对编译器有什么帮助?
      • 如果是字符串,NSString 类必须完成所有工作。因此,如果您使用第二个示例,编译器会将其转换为使用与第一个示例相同的方式。
      • 呃,没有。如果您使用@"Hello",那么编译器会动态创建一种特殊形式的 NSString 并将其直接构建到编译后的二进制文件的数据段中。它还获取原始 C 字符串数据(UTF-8 格式)并将其放入二进制文件的文本段中。内置 NSString 的数据 ptr 指向内置 C 字符串。编译器不会将其转换为方法调用,它只是构建数据并直接引用它(即单个 ldwmov 指令)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多