Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
正如我的标题所提到的,我有点困惑,
id在Objective C中是原始数据类型吗?还是对象类型?我一直认为这id是 Object 类型,因为它指向一个对象。
id
那么,它是对象类型还是原始数据类型?
绝对不是原始类型。来自苹果:
在 Objective-C 中,对象标识符是一种不同的数据类型:id。这种类型是任何类型的对象的通用类型,无论类如何,并且可以用于类的实例和类对象本身。
id在objc.h中声明为
typedef struct objc_object { Class isa; } *id;
所以是的,我会说它是原始的(指针是 C 中的原始类型)。
我相信来自Objective-C的 'id'与来自普通'c' 的void 指针类似。由于指针是原始类型,我猜想“id”确实是原始类型。