ポインターに関する質問がたくさんあることは知っています。特に今は Objective-C に関する質問が多いです。しかし、私は Objective-C のパラダイムを理解するのに役立つ、より高レベルの回答を探しています。
Objective-C でポインターを使用するかどうかは経験の問題であり、つまり、クラスによってはポインターの使用が必須で、他のクラスでは必須ではない、という意見を耳にしたことがあります。これは本当でしょうか。また、Objective-C でポインターを使用するのは、この程度でしょうか。
基本的に、参照変数をメソッドに明示的に渡す場合を除いて、Objective-C のポインターのルールは何ですか?
ベストアンサー1
ポインターを使用するいつもヒープ上の何かを参照する場合時々、しかし通常はそうではないスタック上の何かを参照する場合。
Objective-C オブジェクトは常にヒープ上に割り当てられるため (ブロックは例外ですが、これはこの説明とは関係ありません)、常に Objective-C オブジェクトへのポインターを使用します。 と の両方のid
型Class
は実際にはポインターです。
ポインタを使用しない場所は確実にプリミティブ型そしてシンプルな構造、、、、などはすべてNSPoint
NSRange
int
NSUInteger
通常スタック経由でアクセスし、通常ポインタは使用しません。
についてはWhy the * in Objective-C?
、これを見つけるかもしれません興味のある質問。