为什么viewDidUnload的调用频率低于viewDidLoad?

ohh*_*hho 10 iphone objective-c

我把NSLog(@"%@::%@", [[self class] description], NSStringFromSelector(_cmd));两个viewDidLoadviewDidUnload一个视图控制器.

在日志中,我发现viewDidLoadviewDidUnload应用程序移入和移出不同的.nibs要多得多.

为什么?

vod*_*ang 18

viewDidLoad和viewDidUnload彼此不对应.

只有在收到内存警告时才会调用viewDidUnload.然后系统会自动调用viewDidUnload.

在正常情况下,当您按下MyViewController并将其弹出时.生命周期将如下所示:

init

viewDidLoad

release
Run Code Online (Sandbox Code Playgroud)

这意味着,每当您初始化并推送/显示视图时,都会调用viewDidLoad.但是当你弹出视图时,将在正常情况下调用release,并在内存警告情况下调用viewDidUnload.

这是非常含蓄的,Apple没有在指南中明确说明.这里有一些参考:加载和卸载循环