1.内存不足时执行,执行者非当前显示的controller
如:controller1 push controller2 入stack 导致内存警告,controller1会自动执行viewDidUnload方法,若 controller2 pop出stack,那么controller1会重新执行viewDidLoad方法
模拟器发出内存警告:硬件--->模拟器内存警告
2.viewDidUnload执行内容
self.A = nil;
self.B = nil;
在此方法中可以释放一些容易构建的对象,如本地图片等,不易构建的如服务端数据,要在init方法中进行构建,并且不要在viewDidUnload方法中释放,由于执行完viewDidUnload后 在pop到此controller会执行viewDidLoad方法
设置成nil的目的是防止一个已经释放的对象执行而导致crash,由于空指针会发送消息返回为0不会引发crash

本文详细介绍了iOS应用在遇到内存不足时的处理机制,包括当内存警告发生时ViewController的行为变化,如何正确实现viewDidUnload方法来避免内存泄露并确保程序稳定运行。
68

被折叠的 条评论
为什么被折叠?



