我都快疯了。
我的印象是awakeFromNib方法只被调用一次(即使该视图再次被访问),如果我错了,请纠正我。
我有一个有3个视图的应用程序。最后一个是我使用drawRect绘制的UIview的子类。
在最后一个视图中,我有一个awakeFromNib方法的工作代码,该方法只被调用一次,每次访问视图的次数都是如此。
现在,我将应用程序部署到我的设备上,并将我的Xcode更新到版本4。
当我再次运行代码并进行调试时,每次访问视图时都会调用awakeFromNib方法。
我不认为更新会做这样疯狂的事情,但我完全迷惑了。
是否存在某种内存泄漏,或者我是否遗漏了什么?
谢谢
发布于 2011-04-27 05:21:33
我的印象是awakeFromNib方法只被调用一次(即使该视图再次被访问),如果我错了,请纠正我。
每当从nib文件加载类的实例时,都会在类的每个实例上调用-awakeFromNib。您应该能够期望它在特定的实例上只被调用一次,但应该处理在任何给定类的不同实例上被多次调用的情况。
当UIViewControllers收到内存警告并且视图不可见时,会卸载视图。视图将在下次调用视图控制器的“view”属性时重新加载。你应该理解并支持这一行为,以最小化你的应用程序的内存使用,因为它允许你在任何给定的时间只在内存中保留当前可见的视图。
听起来您并不希望从nib卸载并重新加载该控制器的视图。
https://stackoverflow.com/questions/5796529
复制相似问题