在我的应用程序中,我根据需要使用2-3级继承,所以我想问一下,在iOS中使用如此多级别的继承是个好主意,其中内存是一个很大的约束,这是否会影响性能和关于内存怎么样,因为如果我实际分配1个对象,它将分配3个对象,包括Base?
答案 0 :(得分:0)
假设你有一个类层次结构如下所示,右边的类是左边的类:
NSObject->Subclass1->Subclass2
如果您然后实例化Subclass2
Subclass2 *instance = [[Subclass2 alloc] init];
仅创建一个 Subclass2
对象。未创建Subclass1
和NSObject
的单独对象。由于Subclass2
继承了两个超类中的所有ivars,因此它将分配足够的RAM来存储来自Subclas1和NSObject的ivars。
如果你看一下CocoaTouch框架,有许多对象在它们和NSObject之间有几个超类。
在考虑RAM使用时,比子类的超类数量更重要的是ivars的数量和大小以及您创建的单个对象的数量。