多级继承问题

时间:2013-10-21 05:38:46

标签: objective-c inheritance

在我的应用程序中,我根据需要使用2-3级继承,所以我想问一下,在iOS中使用如此多级别的继承是个好主意,其中内存是一个很大的约束,这是否会影响性能和关于内存怎么样,因为如果我实际分配1个对象,它将分配3个对象,包括Base?

1 个答案:

答案 0 :(得分:0)

假设你有一个类层次结构如下所示,右边的类是左边的类:

NSObject->Subclass1->Subclass2

如果您然后实例化Subclass2

Subclass2 *instance = [[Subclass2 alloc] init];

仅创建一个 Subclass2对象。未创建Subclass1NSObject的单独对象。由于Subclass2继承了两个超类中的所有ivars,因此它将分配足够的RAM来存储来自Subclas1和NSObject的ivars。

如果你看一下CocoaTouch框架,有许多对象在它们和NSObject之间有几个超类。

在考虑RAM使用时,比子类的超类数量更重要的是ivars的数量和大小以及您创建的单个对象的数量。