3

Apple ObjectiveC 描述通过显示示例暗示 NSStrings 存在,并且 NSString 文字被写为

 @ "<string content>"

令人惊讶的是,这就是它所说的全部内容,而这些仅出现在示例中而没有任何讨论。该文件真的是唯一的参考文件吗?

翻来覆去,我发现这个博客似乎有很多有用的信息。但这样做对吗?

是否有权威文档准确描述了一个人在 NSString 文字中可以说什么(语法),以及它的含义(语义)?例如,NSString 文字内容的语法是否与 C(99) 字符串文字内容的语法相同?ObjectiveC ++中的语法是否不同?我可以像其他类型的 C99/C++ 字符串一样为字符串文字内容添加宽度规范,还是只有一种 NSString 文字?什么是黑暗角落?

还是我唯一的选择是深入研究 GCC4 和 Clang 的实现以找出答案?

4

1 回答 1

2

考虑到文档和随机博客之间的选择,我倾向于相信文档。

写的不多,因为没什么可说的; @".."是一个静态字符串常量。它在编译时创建,写入二进制文件中以只读方式映射到内存中,甚至比NSString实例本身更不可变(例如,常量 NSString 根本不实现保留计数;没有分配)。

除了编译器对普通旧 C 字符串使用的正常语法外,没有与它们相关的真正语法。即你可以做大部分的各种stringification gunk,等等......

于 2012-05-27T18:07:58.080 回答