【发布时间】:2012-02-23 15:53:19
【问题描述】:
在视图控制器中,我有一个 UIImageView 作为子视图。在 willRotateToInterfaceOrientation 上,我将其替换为不同的 UIImageView。如果两者同时在内存中,有时会因为图像非常大而导致崩溃。所以我想确保在制作新的之前完全解除第一个。当我对它调用 removeFromSuperview 时,我认为它基本上是稍后自动释放的,但我需要立即释放它。
所以在创建 UIImageView 时我似乎需要我自己的自动释放池,然后在 removeFromSuperview 调用之后调用 willRotateToInterfaceOrientation 时将其排空。但是文档说:
自动释放池应始终在相同的上下文中耗尽(例如 作为方法或函数的调用,或循环体)在 它是创建的。自动释放池“内联”使用。那里 通常应该不是你应该创建自动释放池的理由 对象的实例变量。
那么“正确”的做法是什么?
【问题讨论】:
标签: objective-c memory-management autorelease