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

时间:2012-05-24 16:22:19

标签: objective-c string

  

可能重复:
  Purpose of @ Symbol Before Strings?

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

示例:

NSString* flavour = @"Chocolate"

4 个答案:

答案 0 :(得分:10)

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

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

如果您没有使用@,则会创建一个C字符串(char数组)。

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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