对象和NSObject之间的区别

9

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

谢谢。


你能给我们提供一个使用Object的教程链接吗? - Georg Schölly
请参见:http://www.tenon.com/products/codebuilder/Objective-C.shtml - Nathan Campos
3个回答

6

Objective-C仅仅是一种语言。

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


我不使用Cocoa,因为我在Linux上,所以我使用带有gcc的GNUstep。;) - Nathan Campos

6

您应该忽略Object。

Objective-C允许多个根类。Object是NSObject之前的一个根类。你永远不会想要使用它。只有在某些情况下已经与Object进行了交互,你才需要处理它。这种情况非常罕见。

例如,Object没有实现-retain和-release。


那我可以导入NSObject,不会有语法问题了吗? - Nathan Campos
不太确定你的意思,但很可能是肯定的。您可能还想忽略使用Object的链接教程。我认为您会很难找到其他参考它的教程。 - Ken

4

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


我会去查看这个参考资料。谢谢。 - Nathan Campos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接