【发布时间】:2011-02-27 16:41:02
【问题描述】:
我有一个基于导航控制器的应用程序,里面有 5 个视图控制器。当我推送视图控制器时,我分配了一些内存,当我返回 popViewController 时,我的 delloc() 方法被正确调用。我确信对于我推送和弹出的每个视图控制器都会以正确的方式调用 dealloc。
尽管如此,当我使用 Instruments 运行应用程序时(从性能工具开始 -> 对象分配,泄漏),对我来说有一个奇怪的行为。 当视图控制器弹出时,内存使用量不会减少,确切地说它不会像预期的那样减少: 当我启动应用程序时,它使用 950 KB,然后我推送第一个视图控制器,内存使用量增加到 1.56MB,最后我弹出视图控制器,内存使用量现在是 1.55MB。
这种行为对吗?我确信每当我弹出一个视图并且 Leaks 工具没有显示任何内存泄漏时,每个 dealloc 方法都会被正确调用。 我猜操作系统以某种方式“保留”了视图,所以到第二次我推送同一个视图控制器时,加载过程要快得多......
有人可以确认这种行为是正确的吗? 谢谢
【问题讨论】:
-
附言。 Instruments 是设置为每 X 秒检查一次泄漏还是手动检查一次?
-
设置为每10秒自动检查一次。有什么改变吗?
标签: iphone memory-leaks uinavigationcontroller instruments