目标c类的默认基类

Dan*_*bly 4 oop iphone objective-c ios

这个问题的答案可能很明显,但我需要确定:

当基类没有在类定义中明确定义时,所有目标c类是否共享一个公共默认基类?

alb*_*amg 13

不,如果您没有在类定义中明确定义超类,那么您正在创建根类.

来自可可核心能力:

根类不从其他类继承,并定义其下面的层次结构中的所有对象共有的接口和行为.该层次结构中的所有对象最终都从根类继承.根类有时被称为基类.

所有Objective-C类的根类都是NSObjectFoundation框架的一部分.Cocoa或Cocoa Touch应用程序中的所有对象最终都从NSObject继承.此类是主要访问点,其他类与Objective-C运行时交互.它还声明了基本的对象接口并实现了基本的对象行为,包括内省,内存管理和方法调用.Cocoa和Cocoa Touch对象可以在很大程度上从根类中获得表现为对象的能力.

在此输入图像描述

Foundation框架定义了另一个根类,NSProxy但是这个类很少在Cocoa应用程序中使用,从不在Cocoa Touch应用程序中使用.

也可以看看:

  • 您可能要提一下,您从http://developer.apple.com/library/ios/#documentation/general/Conceptual/DevPedia-CocoaCore/RootClass.html复制粘贴了上面的一大块:-) (2认同)
  • 作为旁白; 如果你有人想要制作自己的根类......不要.如果您希望它与Foundation提供的类(或更高版本)进行交互操作,您最终将不得不重写大部分NSObject(包括一些非常明显的非显而易见的位,如KVO和KVC). (2认同)