2012-12-17 65 views
-1

Objective-C在@"hello""hello"之间有什么区别?objective-c @“hello”和“hello”之间的区别?

+1

如果你甚至不知道这样一个根本的东西,请不要学习C正确潜水前深入到可可/目标-C,否则你会迷路并将自己和你的用户拍到脚下。 – 2012-12-17 05:49:54

+1

为什么这个讨厌的评论只是一个简单而明确的问题?凯文可能只是在寻找一个好的答案。 – Cocoanetics

回答

7
@"hello" 

创建NSString类(这是一个正确的Objective-C的对象)的一个实例,而

"hello" 

将创建一个简单C字符串(的const char[]类型)。

+1

实际上,取决于你使用的是哪个版本的'clang' /'gcc'(在这种情况下,添加了objc文字之前的版本),'@“str”'文字返回只读字符串,完全驻留在静态数据中,并且没有字符串被“创建”。只是一些技术细节。现在,是否一个文字是一个静态引用或不是实现定义。 –

+1

可能值得一提的是,@“hello”只是'[NSString stringWithUTF8String:“hello”]的一个快捷方式;''但我认为它有助于展示真正的区别.... – lnafziger

+3

@inafziger不总是这种情况,如果你阅读我上面的评论。虽然在语义上他们可能看起来是相同的,但实际上它们实际上是完全不同的。 –

0

@“你好”是的NSString(目标C类)常数和“你好”字符串常量

相关问题