2012-01-31 3 views
1

可能性の重複:
objective c difference between id and void *Cスタイルのポインタとidスタイルのオブジェクトの違いは何ですか?

私は「より多くの交流スタイルのポインタのようなIDのスタイルオブジェクトより」である何かを言及するコメント渡って走っFoundationフレームワークでNSZone.hて読みながら。私はその違いを理解していないことに気付きました。

Cスタイルのポインタとidスタイルのオブジェクトの違いは何ですか?

+1

10,000フィートレベルでは、 'id'は' void * 'ポインタと非常によく似ています。区別は、 'id'がタイプされているが、タイプが「Objective-Cオブジェクト」であり、非常に大きく、「ムッシュ」なカテゴリである。 –

+1

申し訳ありませんが、記事を間違って読んでいます。 :(間違った答えが削除されました。指摘してくれてありがとう、みんな。参考資料:http://unixjunkie.blogspot.com/2008/03/id-vs-nsobject-vs-id.html – Almo

答えて

1

A Cポインタが何を指すことができます - オブジェクト、構造、生のバイト、文字列、...

'ID' ポインタはObjective-Cのオブジェクトのインスタンスを指しています。 'id'は型指定されていないので、クラスのインスタンスを指している可能性があります。 NSObject *のようなものが入力されます。あなたはどのような種類のオブジェクトを指しているのか知っています。

1

ヘッダーは、Objective-Cガベージコレクタによって処理される方法について具体的に話しているようです。 malloc()から得られた汎用ポインタは、オブジェクトはコレクタによって管理されません。このコメントは、CoreFoundationスタイルのオブジェクトに対してGCを有効にする関数NSMakeCollectable()にあります。

関連する問題