Objective C中的id是原始数据类型

时间:2012-06-20 12:46:43

标签: objective-c ios cocoa

我有点困惑,正如我的标题所提到的那样,

Objective C中的id是原始数据类型吗?或对象类型?我一直认为id是对象类型,因为它指向一个对象。

那么,它是Object类型还是Primitive数据类型?

3 个答案:

答案 0 :(得分:5)

绝对不是原始类型。来自Apple:

在Objective-C中,对象标识符具有不同的数据类型:id。这种类型是任何类型对象的通用类型,不管是什么类,都可以用于类的实例和类对象本身。

答案 1 :(得分:3)

idobjc.h中声明为

typedef struct objc_object {
    Class isa;
} *id;

所以是的,我会说它是原始的(指针是C中的原始类型)。

答案 2 :(得分:1)

我认为来自 Objective-C 'id'与来自普通'c'的无效指针类似/ strong>即可。由于指针是基元,我猜测'id'确实是一种原始类型。