9

我正在学习 Objective-C,正如我所看到的,在一些教程中他们使用 Object(从 objc/Object.h 导入),而在其他教程中我看到了 NSObject(从 Foundation/NSObject.h 导入)的使用,但是什么是它们之间的主要区别是什么?

问候。

4

3 回答 3

6

你应该忽略对象。

Objective-C 允许多个根类。Object 是早于 NSObject 的根类。它绝不是您想要使用的东西。仅当某些东西已经以某种方式与 Object 交互时才有意义,因此您必须处理它。这是非常罕见的。

例如,对象没有实现-retainand -release

于 2009-10-19T18:09:49.510 回答
6

Objective-C 只是语言。

Cocoa 框架使用 NSObject 基类作为层次结构的根类。其他实现使用它们自己的根类,在您的情况下是 Object 类。

于 2009-10-19T18:00:19.687 回答
4

NSObject 包含 Cocoa 框架的所有基础设施。换句话说,它符合 Object 不符合的几个协议,并且会响应 Object 不会响应的某些方法。具体参见NSObject 类参考

于 2009-10-19T18:01:39.183 回答