1

私は Objective-C にはまったく慣れていませんが、C/C++ の経験があるため、奇妙な点がいくつかあります。@Objective-C の基本を示すチュートリアルを読んでいますが、著者は、文字列の前にを含めるのを忘れていると警告しています。だから、例えば

"Hello"@"Hello"

ただし、著者は@が必要な理由や構文上の意味については説明していません。それが私が今尋ねていることです、それは何をし@ますか?

4

3 に答える 3

12

それはNSString文字通りです。がなければ、 のようなオブジェクトではない を@作成することになります。char *NSString

于 2013-05-17T03:40:40.133 に答える
3

Objective-C は C のスーパー セットであるため、"hello"は C 文字列 ( const char *) であることを知っておく必要があります。

@"hello"は何か違う、それはNSString *です。NSStringは ObjC オブジェクトであり、メッセージを送信して同様のオブジェクトを使用できます。C文字列ではできません。

たとえば、次の 2 つの文字列から長さを取得するには、次のようにします。

NSString *objcStr = @"hello";

int len = [objcStr length];

const char * cStr = "hello";

len = strlen(cStr);
于 2013-05-17T03:41:12.610 に答える
0

の使用は@、Objective C に固有であり、生の C にはない機能を指定しNSStringます@。 Objective C オブジェクトではなく、生の C エンティティです。

于 2013-05-17T03:58:53.347 に答える