解析iOS内存不足时的警告以及处理过程

2020-01-14 15:51:23王振洲

2.didReceiveMemoryWarning方法内部的默认实现以下步骤: 首先会检测控制器的view在不在屏幕上

 

复制代码
if (self.view.superview == nil) { // 检测控制器的view在不在屏幕上
// 就会尝试销毁控制器的view
// 即将销毁的时候,就会调用控制器的 viewWillUnload
// 销毁完毕的时候,就会调用控制器的 viewDidUnload方法
} else {

 

// 不销毁控制器的view
}


3.当需要再次使用控制器的view时,又会调用loadView方法来创建view

 

4.接着会调用一系列的生命周期方法 
viewDidLoad —> ……

5.生命周期循环 
loadView –> viewDidLoad –> ..可见.. –内存警告–> didReceiveMemoryWarning —> viewWillUnload –> viewDidUnload —再次使用—> loadView

所以当我们的程序内存过大时,我们挂载在后台的QQ有时候会出现已经推出的情况!当我们再次点击的时候,QQ又重新加载运行起来!



注:相关教程知识阅读请移步到IOS开发频道。