awakeFromNib不止一次调用

时间:2011-04-26 21:13:29

标签: iphone objective-c xcode

这让我发疯了 我的印象是awakeFromNib方法只被调用一次(即使再次访问该视图),如果我错了,请纠正我。

我有一个包含3个视图的应用。 最后一个是UIview的子类,我使用drawRect绘制。

我在上一个视图中使用awakeFromNib方法编写了一个代码,该方法只调用了一次我访问视图的次数。
现在我将应用程序部署到我的设备并将我的Xcode更新为版本4.

当我再次运行代码并进行调试时,每次访问视图时都会调用awakeFromNib方法。
我不认为更新会做这么疯狂的事情,但我彻底困惑。

是否有某种内存泄漏或我错过了什么?

谢谢

1 个答案:

答案 0 :(得分:5)

  

我的印象是awakeFromNib方法只被调用一次(即使再次访问该视图),如果我错了,请纠正我。

只要从nib文件加载该类的实例,就会在每个类的实例上调用-awakeFromNib。您应该能够期望它只在特定实例上调用一次,但应该处理它在任何给定类的不同实例上多次调用。

UIViewControllers在收到内存警告并且其视图不可见时将卸载其视图。下次调用视图控制器的“view”属性时,将重新加载视图。您应该理解并支持此行为以最小化应用程序的内存使用,因为它允许您在任何给定时间仅将当前可见的视图保留在内存中。

听起来你并不期望从你的笔尖卸载并重新加载控制器的视图。