Class的isa字段指向自身有什么意义?或者为什么Xcode打扰这个呢?

Jin*_*Kim 5 xcode objective-c

正如您在下面所看到的,Objective-C中的对象都有一个isa字段,指向它所属的类.最终,一切都指向NSObject,而NSObject又指向Class.为什么这个班级有一个指向自己的isa?也许为Class对象提供这个自引用字段甚至是有意义的,但是Xcode在观察窗口中显示的是什么?Xcode在这里是不是超文字,还是有意为一个Class对象显示isa字段?

我对Xcode的观察窗口的作用并不了解,我真的很好奇,因为我怀疑这种混乱意味着我不理解某些东西.

Xcode中的观察窗口

Wil*_*ell 2

我怀疑这与元类有关。有关元类的相当详尽的解释,请参阅此处:What is meta class in Objective-c?

综上所述,有一个 NSObject 元类,它是 Objective-C 中唯一的自定义类,并且 NSObject 的所有后代(包括 NSObject 本身)都会有一个指向它的 isa。