3

我有一个非常自定义的项目设置,它使用一个带有委托协议的类。主视图动态创建大约 100 个此类的对象。对于每个对象,主视图控制器被设置为对象的委托,因为对象需要与主视图控制器通信。

我想知道这是否会导致使用委托模式引起的任何性能或内存问题?

4

2 回答 2

4

只要相同的主视图是所有对象的委托,这种模式中唯一的内存消耗就是您新创建的对象。委托引用在引用方面没有任何成本,因为它们只是指向现有主视图控制器的指针。

话虽如此,在某些情况下,人们确实会创建专门的对象来充当委托,如果您遵循该模式(您将为每个“其他”对象分配和维护一个单独的委托对象),那么您会看到消费和这种模式有时会导致泄漏,具体取决于所有权管理/管理不善的方式。

但是,对于上述情况,这应该不是问题。

于 2013-06-09T12:27:44.333 回答
0

使用委托或任何其他模式都不会导致性能问题或内存泄漏。模式的目的是为特定问题提供普遍应用和测试的解决方案,而不考虑语言、系统、内存等。

内存泄漏和性能问题可能发生在一个使用模式与其他模式一样容易的系统中。但它们不是模式的结果。它们是糟糕的设计或内存管理的结果。

从您描述的情况来看,我预计不会出现任何性能问题。仅仅因为涉及的对象数量非常少。但是,不正确的内存管理会导致内存泄漏,因此您需要注意这些。

我的建议是重新阅读内存管理规则并通过工具中的泄漏工具运行您的代码。

于 2013-06-09T13:22:41.760 回答