例如:
@interface Fraction: NSObject { ...
何时不NSObject
使用,是NSObject
所有其他课程的最终父类?
如有任何错误的术语,请随时纠正我.
Cocoa有两个根类:NSObject和NSProxy.
NSObject是几乎所有Cocoa对象的根类.
NSProxy是一个抽象超类,它定义了对象的API,这些对象充当其他对象或不存在的对象的替身,并且是NSDistantObject等类的根类.
这两个类都实现了NSObject协议.
也可以编写自己的没有根类的Objective C类,但是你可能永远不会这样做,除非你还实现了NSObject协议,否则你将无法将它与Cocoa一起使用.即便如此,它仍然是可疑的.
在任何Cocoa应用程序中,如果检查运行时类树,您将找到五个根类:NSObject,Object,NSProxy,NSMessageBuilder和NSZombie.
您应用中的大多数普通对象都来自NSObject.Object是Objective-C早期的原始根类,当NeXT开发Enterprise Objects Framework时,它被NSObject取代.
运行时使用NSMessageBuilder进行消息转发.分布式对象实现使用NSProxy来处理编组消息以发送到其他进程中的对象,甚至是其他主机上的对象. NSZombie是一个用于调试内存泄漏的类.