8

重複の可能性:
文字列の前の @ 記号の目的?

すべての文字列が客観的な C である前に、私は何@を意味するのか興味がありました.コンパイラにとってより簡単ですか、それとも何らかの形でより効率的ですか?

例:

NSString* flavour = @"Chocolate"
4

4 に答える 4

14

@"Chocolate"NSStringインスタンスを作成するための単なるショートカットです。以下を使用することもできます。

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

@ を使用しない場合は、C 文字列 (char配列) を作成します。

于 2012-05-24T16:25:49.110 に答える
5

この@文字は C または C++ の識別子では使用されないため、他の言語のキーワードと競合しない方法で Objective-C 言語のキーワードを導入するために使用されます。これにより、言語の「目的」部分を C または C++ 部分と自由に混在させることができます。

于 2012-05-24T16:25:02.217 に答える
3

NSStringObjective-C はプレーン C のスーパーセットであるため、リテラルをプレーン C 文字列 (基本的には単なるchar*ポインター)と区別する方法が必要です。

于 2012-05-24T16:25:02.873 に答える
0

C文字列と私が思う目的のCクラスを区別する

于 2012-05-24T16:23:57.833 に答える