“Class”被认为是一个类的不透明类型。这是什么意思?它是类的类型吗?
还有一件事,是指向结构或基本结构的类指针吗?
答案 0 :(得分:0)
Class
类型的变量可以保存指向类对象的指针,就像id
类型的变量可以保存指向任何对象的指针一样。类对象是一个对象。如果你有id
类型的变量,你不知道它是什么类型的东西;与Class
相同。你只知道它是一个对象。我不知道你从哪里获得这个“不透明类型”的术语。
你可以说对象是结构体,因为它们是由一堆以某种方式在内存中组合在一起的东西组成的。但是你永远不应该关心对象的内部结构。这是运行时的实现细节。您在Apple运行时标头中看到的结构,如objc_object
,objc_class
等,并不完全是对象 - 它们代表Apple运行时中对象“开头”的结构;但是对象包含的内容超出了结构描述的内容,比如它的实例变量。