2009-06-30 9 views
5

いつあなたは*シンボルが必要なのでしょうか?(これは目的ではNSStringのようなすべての変数がポインタ変数だからです)Objective-Cのポインタの使用

たとえば、「NSString」ではなく「NSString *」をいつ行う必要がありますか?

答えて

8

Objective-Cでは、すべてのオブジェクト参照はポインタであるため、Objective-Cオブジェクトで宣言するときは常にポインタ演算子が必要です。

他の型の場合は、Cとまったく同じです。参照によってデータ構造体またはプリミティブ型を渡す場合は、ポインタを使用します。

+1

例外は "id"型です。これはC言語のvoid *とほぼ同じで、星型がその型に含まれています。 –

3

すべてのObjective-Cオブジェクト(NSDictionary、NSString、NSNumberなど)にアスタリスクを使用します。

プリミティブ型(int、double、float)の場合は、アスタリスクは必要ありません。ただし、NSプレフィックスは必ずしもアスタリスクを使用する必要はありません。 Cocoaは、プリミティブ型に基づいているいくつかの構造体(NSInteger、NSRect、NSPointなど)を定義しています。ここでアスタリスクを使用しないでください。例えば、NSRectはNSPointとNSSizeの構造体であり、どちらも2つのCGFloat(プリミティブ型)で構成されています。

*記法を使用して、これらのプリミティブ型または構造体のいずれかにポインタを渡すことができます。

関連する問題