2010-12-15 84 views
9

我一直在使用Objective-C一段时间,但从未真正理解@符号在所有字符串之前的用途是什么。举例来说,你为什么要声明一个字符串是这样的:字符串之前@符号的用途?

NSString *string = @"This is a string"; 

,而不是像这样:

NSString *anotherString = "This is another string"; 

如您在Java或许多其他编程语言做。有没有很好的理由?

+3

请参阅[@符号在objective-c中代表什么? ](http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c)。 – 2010-12-15 03:00:29

+0

这很有道理。谢谢! – Jumhyn 2010-12-15 03:03:57

回答

12

它表示的NSString(而不是标准的C字符串)

一个NSString是存储Unicode字符串,并提供了一堆方法来辅助操作对象。

C字符串只是一个以\ 0结尾的字符串(字节)。

编辑:好的原因是Objective-C建立在C之上,C语言构造需要仍然可用。 @“”是一个仅用于Objective-C的扩展。

+0

我现在明白了。谢谢! – Jumhyn 2010-12-15 03:05:06

+4

当你在ObjC中看到一个@时,这是一个好兆头,它是ObjC对C的扩展的一部分@ @interface,@implementation,@protocol,@selector,@class等@非正式的Objective-C命名空间。这与Cocoa中的所有内容都以'NS'为前缀,这样它就不会与其他内容发生冲突。 – Ken 2010-12-15 04:02:04

相关问题