4

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

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

那么,它是对象类型还是原始数据类型?

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 回答