【发布时间】:2013-10-27 23:48:55
【问题描述】:
“类”被称为类的不透明类型。这是什么意思?是类的类型吗?
还有一点,类是指向结构体的指针还是基本上是结构体?
【问题讨论】:
-
“不透明”的意思是“你不应该关心这实际上是什么”。它可能是(可能是)以某种方式描述类的结构,但您不应该直接访问该结构,而不是使用 Objective C 运行时函数。
标签: objective-c class
“类”被称为类的不透明类型。这是什么意思?是类的类型吗?
还有一点,类是指向结构体的指针还是基本上是结构体?
【问题讨论】:
标签: objective-c class
Class 类型的变量可以保存指向类对象的指针,就像id 类型的变量可以保存指向任何对象的指针一样。类对象是一个对象。如果你有一个id 类型的变量,你不知道里面是什么东西;与Class 相同。你只知道它是一个对象。我不知道你从哪里得到这个“不透明类型”的术语。
你可以说对象是结构,因为它们是由一堆东西组成的,它们以某种方式在内存中排列在一起。但是你永远不应该关心对象的内部结构。这是运行时的实现细节。您在 Apple 运行时标头中看到的结构,如 objc_object、objc_class 等,并不完全是对象——它们代表 Apple 运行时中对象“开始”的结构;但对象包含的内容超出了这些结构所描述的内容,例如其实例变量。
【讨论】: