【发布时间】:2011-02-01 08:17:58
【问题描述】:
我的 iPhone 应用程序通常使用不到 5MB 的活动内存,即使在最极端的条件下也保持在 8MB 以下。 iPhone 2G 有 128MB 的 RAM,据我所知,一个应用程序应该只有 20-30MB 可以使用。
鉴于我从没想过会接近内存限制,我是否需要关心内存警告并在 viewDidUnload: 中将对象设置为零?我看到我的应用程序收到内存警告的唯一方法是,如果手机上的其他东西正在破坏内存,在这种情况下,整个手机都会表现得很愚蠢。我构建我的应用程序时从未使用 viewDidUnload:,因此如果我确实需要实现它,我需要检查一百多个类并添加代码。
【问题讨论】:
-
将对象设置为
nil不会释放任何内存。在设置为nil之前,您需要实际发送-release消息给他们以解除分配。 -
我的印象是 release 只能在 dealloc 中使用。我确实看到一些 SO 问题说 viewDidUnload: 是例外......但无论哪种方式,基本问题都是一样的。
标签: iphone cocoa-touch memory memory-management uikit