我有一个内置5个视图控制器的基于导航控制器的应用程序。当我推视图控制器时,我分配了一些内存,当我回到popViewController时,正确调用了我的delloc()方法。我确定dealloc以正确的方式被调用,用于我推送和弹出的每个视图控制器。不过,当我使用Instruments运行应用程序时(从性能工具 - >对象分配,泄漏开始),对我来说有一种奇怪的行为。 当一个视图控制器弹出内存使用不会减少,确切地说,它不会像预期的那样减少: 当我启动应用程序时,它使用950 KB,然后我推动第一个视图控制器,内存使用量增加到1 ,56MB,最后我弹出视图控制器,内存使用现在是1,55MB。当弹出一个控制器时,UINavigationController内存不会减少
这种行为是否正确?我确信每当我弹出一个视图时,每个dealloc方法都会被正确调用,并且Leaks仪器不会显示任何内存泄漏。 我猜操作系统是“保留”在某种程度上的观点,以便第二次我推动相同的视图控制器的加载过程是更快...
有人可以确认这种行为是正确的吗? 感谢
See this Screenshot from Instruments
Ps。仪器是否设置为每X秒检查一次泄漏或手动检查? – RickiG 2010-06-04 10:23:46
它设置为每10秒自动检查一次。会改变什么吗? – ggould75 2010-06-04 11:03:13