8

可能重复:
@ 符号在字符串之前的用途?

在每个字符串都是客观 C 之前,我一直很好奇这@意味着什么。编译器更容易,还是在某种程度上更有效?

例子:

NSString* flavour = @"Chocolate"
4

4 回答 4

14

@"Chocolate"只是创建NSString实例的快捷方式。您还可以使用:

[[NSString alloc] initWithUTF8String:"Chocolate"];

如果您不使用 @ 您将创建一个 C 字符串(char数组)。

于 2012-05-24T16:25:49.110 回答
5

@字符不用于 C 或 C++ 标识符中,因此它用于以不会与其他语言的关键字冲突的方式引入 Objective-C 语言关键字。这使得语言的“目标”部分可以与 C 或 C++ 部分自由混合。

于 2012-05-24T16:25:02.217 回答
3

因为 Objective-C 是纯 C 的超集,所以必须有一种方法来区分NSString纯 C 字符串(基本上只是char*指针)的文字。

于 2012-05-24T16:25:02.873 回答
0

区分c字符串和我认为的objective-c类

于 2012-05-24T16:23:57.833 回答