Objective c 你所说的不透明类是什么意思?

Objective c 你所说的不透明类是什么意思?,objective-c,class,Objective C,Class,“类”被称为类的不透明类型。这是什么意思?这是一个班级的类型吗 还有一件事,类是指向结构还是基本结构的指针?类型为Class的变量可以保存指向类对象的指针,就像类型为id的变量可以保存指向任何对象的指针一样。类对象是一个对象。如果您有一个类型为id的变量,您不知道其中包含什么类型的内容;与类相同。你只知道它是一个物体。我不知道这个“不透明类型”的术语是从哪里来的 你可以说对象是结构,因为它们是由一堆在内存中以某种方式排列在一起的东西组成的。但您永远不应该关心对象的内部结构。这是运行时的实现细节。

“类”被称为类的不透明类型。这是什么意思?这是一个班级的类型吗


还有一件事,类是指向结构还是基本结构的指针?

类型为
Class
的变量可以保存指向类对象的指针,就像类型为
id
的变量可以保存指向任何对象的指针一样。类对象是一个对象。如果您有一个类型为
id
的变量,您不知道其中包含什么类型的内容;与
相同。你只知道它是一个物体。我不知道这个“不透明类型”的术语是从哪里来的


你可以说对象是结构,因为它们是由一堆在内存中以某种方式排列在一起的东西组成的。但您永远不应该关心对象的内部结构。这是运行时的实现细节。您在Apple运行时标题中看到的结构,如
objc_object
objc_class
,等等,与对象不完全相同——它们代表Apple运行时中对象的“开始”结构;但对象包含的内容超出了这些结构所描述的内容,比如它的实例变量。

“不透明”的意思是“你不应该关心它实际上是什么”。它可能(可能是)以某种方式描述类的结构,但与使用Objective C运行时函数相反,您不应该直接访问该结构。@newact:类是结构还是结构指针?@user007:对象(类的实例)是结构。在Objective-C中,我们从不直接握住物体;我们总是使用指向对象的指针来操作对象。所以指向对象的指针就是指向结构的指针。类对象(同样,这是一个更高级的概念)是对象,结构也是对象。同样,我们只能处理指向类对象的指针,而不能处理类对象本身。