为什么'@'在Objective-C中的字符串之前使用?

bea*_*akr 6 string objective-c

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

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

例:

NSString* flavour = @"Chocolate"
Run Code Online (Sandbox Code Playgroud)

Dru*_*erB 10

@"Chocolate"只是创建NSString实例的快捷方式.你也可以使用:

[[NSString alloc] initWithUTF8String:"Chocolate"];
Run Code Online (Sandbox Code Playgroud)

如果你没有使用@,你将创建一个C字符串(char数组).


mat*_*mmo 5

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


Ede*_*iss 0

我认为区分 C 字符串和 Objective-C 类