1

在我的应用程序中,我根据要求使用了 2-3 级继承,所以我想问一下在 iOS 中使用这么多级继承是个好主意,其中内存是很大的限制,这是否会影响性能以及内存呢因为如果我实际上分配 1 个对象,它将分配 3 个对象,包括 Base?

4

1 回答 1

0

假设您有一个如下的类层次结构,其中右侧的类是左侧的子类:

NSObject->Subclass1->Subclass2

如果你然后实例化Subclass2

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

只会创建一个 Subclass2对象。Subclass1为和NSObject不创建单独的对象。由于Subclass2继承了两个超类的所有 ivars,但是,它将分配足够的 RAM 来存储来自 Subclas1 和 NSObject 的 ivars。

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

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

于 2013-10-21T08:40:36.617 回答