类是Objective-C中的对象吗?

类是Objective-C中的对象吗?,objective-c,macos,cocoa,class,metaclass,Objective C,Macos,Cocoa,Class,Metaclass,好的,我知道对象是必须分配和初始化的类的实例,但是类本身是对象吗 我知道当你创建一个新的类时,它是其他东西的一个实例,比如NSObject。所以,如果这使它成为一个类,那么对象不仅可以保存变量和方法,还可以保存其他对象,对吗 抱歉,这可能是非常基本的,但我正在读两本关于cocoa和xcode的书,这一点有点不清楚(可能是因为我缺乏其他语言的经验)。是Greg Parker对这一问题的一个很好的解释 引述: […]每个Objective-C类也是一个 对象它有一个isa指针和 其他数据,并且可以响

好的,我知道对象是必须分配和初始化的类的实例,但是类本身是对象吗

我知道当你创建一个新的类时,它是其他东西的一个实例,比如NSObject。所以,如果这使它成为一个类,那么对象不仅可以保存变量和方法,还可以保存其他对象,对吗

抱歉,这可能是非常基本的,但我正在读两本关于cocoa和xcode的书,这一点有点不清楚(可能是因为我缺乏其他语言的经验)。

是Greg Parker对这一问题的一个很好的解释

引述:

[…]每个Objective-C类也是一个 对象它有一个isa指针和 其他数据,并且可以响应 选择器。当你叫“班”的时候 方法“像[NSObject alloc],您是 实际上是在给那个人发信息 类对象

因为类是一个对象,所以它必须是 另一类的实例:a 元类。元类是 类对象的描述,仅此而已 类是对类的描述 普通的例子。特别是 元类的方法列表是类 方法:类所使用的选择器 对象响应。当你发送 类的消息-类的实例 元类-objc_msgSend()的外观 通过 元类(及其超类,如果有) any)来决定调用什么方法。 类方法由 代表类的元类 对象,就像实例方法一样 由班级代表描述 实例对象

元类呢?它是 元类一直向下?不,A 元类是根的一个实例 类的元类;根元类 本身就是根的一个实例 元类。isa链以a结尾 循环此处:实例到类到 元类到根元类到自身。 元类isa指针的行为 很少有关系,因为在现实中 没有人向世界发送信息 元类对象。[……]

更有趣的是:

作者:科林·惠勒
(搜索标题为“So类定义对象…”的段落)


马特·加拉赫

我想你是在谈论元类吧?