2010-12-15 19 views
9

私はObjective-Cをしばらく使っていますが、すべての文字列の前に@記号の目的が本当に分かったことはありません。@記号の前に文字列の目的はありますか?

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

はなく、次のように:あなたはJavaまたは非常に多くの他のプログラミング言語で行うよう

NSString *anotherString = "This is another string"; 

をたとえば、なぜあなたは、このような文字列を宣言する必要があります。正当な理由はありますか?

+3

[@記号は目的-cの中で何を表していますか? ](http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c)。 –

+0

意味があります。ありがとう! – Jumhyn

答えて

12

それはNSStringの(というより標準C文字列)である

NSStringのは、Unicode文字列を格納し、操作を支援する方法の束を提供するオブジェクトです。

C文字列は\ 0終了文字列(バイト)です。

EDIT:Objective-CがCの上に構築されているのがよい理由は、C言語の構造体がまだ利用可能である必要があるからです。 @ ""は目的関数のみの拡張です。

+0

私は今それを得る。ありがとうございました! – Jumhyn

+4

ObjCで何かの前に@があると、それはObjCがCにする拡張の一部であるという良い兆候です。@interface、@implementation、@protocol、@selector、@classなど@は非公式のObjective-C名前空間。ココアのすべてのプレフィックスに「NS」という接頭辞が付いているので、他のものと競合することはありません。 – Ken

関連する問題