我正在学习 Objective-C,正如我所看到的,在一些教程中他们使用 Object(从 objc/Object.h 导入),而在其他教程中我看到了 NSObject(从 Foundation/NSObject.h 导入)的使用,但是什么是它们之间的主要区别是什么?
问候。
我正在学习 Objective-C,正如我所看到的,在一些教程中他们使用 Object(从 objc/Object.h 导入),而在其他教程中我看到了 NSObject(从 Foundation/NSObject.h 导入)的使用,但是什么是它们之间的主要区别是什么?
问候。
你应该忽略对象。
Objective-C 允许多个根类。Object 是早于 NSObject 的根类。它绝不是您想要使用的东西。仅当某些东西已经以某种方式与 Object 交互时才有意义,因此您必须处理它。这是非常罕见的。
例如,对象没有实现-retain
and -release
。
Objective-C 只是语言。
Cocoa 框架使用 NSObject 基类作为层次结构的根类。其他实现使用它们自己的根类,在您的情况下是 Object 类。
NSObject 包含 Cocoa 框架的所有基础设施。换句话说,它符合 Object 不符合的几个协议,并且会响应 Object 不会响应的某些方法。具体参见NSObject 类参考和