我正在学习Objective-C,发现在一些教程中使用Object(从objc/Object.h导入),而在其他教程中看到使用NSObject(从Foundation/NSObject.h导入),它们之间的主要区别是什么?
谢谢。
我正在学习Objective-C,发现在一些教程中使用Object(从objc/Object.h导入),而在其他教程中看到使用NSObject(从Foundation/NSObject.h导入),它们之间的主要区别是什么?
谢谢。
Objective-C仅仅是一种语言。
Cocoa框架将NSObject基类作为层次结构的根类。其他实现使用自己的根类,而在您的情况下则使用Object类。
您应该忽略Object。
Objective-C允许多个根类。Object是NSObject之前的一个根类。你永远不会想要使用它。只有在某些情况下已经与Object进行了交互,你才需要处理它。这种情况非常罕见。
例如,Object没有实现-retain和-release。
NSObject包含了Cocoa框架的所有基础设施。换句话说,它符合Object不符合的多个协议,并会响应一些Object无法响应的方法。具体请参见NSObject类参考