iOS-代理的数量是否会成为内存问题

iOS-代理的数量是否会成为内存问题,ios,objective-c,delegates,Ios,Objective C,Delegates,我有一个非常自定义的项目设置,它使用一个带有委托协议的类。主视图动态创建大约100个此类对象。对于每个对象,主视图控制器设置为对象的代理,因为对象需要与主视图控制器通信 我想知道这是否会导致由于使用委托模式而导致的任何性能或内存问题?只要相同的主视图是所有对象的委托,此模式中唯一的内存消耗就是新创建的对象。委托引用在引用方面没有任何成本,因为它们只是指向现有主视图控制器的指针 话虽如此,在某些情况下,人们确实会创建专门的对象作为委托,如果您遵循该模式(即为每个“其他”对象分配和维护一个单独的委托

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


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

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

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


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

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

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

对于您描述的案例,我不希望出现任何性能问题。只是因为涉及的对象数量非常少。然而,在适当的内存管理将导致内存泄漏,所以你需要知道这些

我的建议是重新阅读内存管理规则,并通过instruments中的leaks工具运行代码