4

タイトルにもあるように、少し混乱していますが、

idObjective Cはプリミティブデータ型ですか? またはオブジェクトタイプ?idオブジェクトを指しているので、私はいつもオブジェクト型だと思っていました。

それで、それはオブジェクト型ですか、それともプリミティブデータ型ですか?

4

3 に答える 3

5

間違いなくプリミティブ型ではありません。アップル より:

Objective-C では、オブジェクト識別子は id という異なるデータ型です。この型は、クラスに関係なくあらゆる種類のオブジェクトの一般的な型であり、クラスのインスタンスおよびクラス オブジェクト自体に使用できます。

于 2012-06-20T12:50:06.187 に答える
4

idobjc.hで次のように宣言されています

typedef struct objc_object {
    Class isa;
} *id;

そうです、それはプリミティブだと思います(ポインターはCのプリミティブ型です)。

于 2012-06-20T12:48:33.483 に答える
1

Objective-Cの「id」はプレーンな「c」のvoidポインタに似たタイプだと思います。ポインタはプリミティブであるため、「id」は確かにプリミティブ型であると思います。

于 2012-06-20T13:28:27.373 に答える