【code_hyy_基础】didReceiveMemoryWarning

iOS6 之前:viewDidUnload 和 didReceiveMemoryWarning 都会被调用。
iOS6 及其后面的版本: viewDidUnload 不会被调用 didReceiveMemoryWarning 依然被调用。系统会自动处理view相关的内存,我们不用担心。

iOS升级到6.0以后,不再支持viewDidUnload了。官方文档的解释是系统会自动控制大的View所占用的内存,其他小的View所占用的内存是极其微小的,不值得为了省内存而去清理然后在重新创建。如果你需要在内存警告的时候释放业务数据或者做些其他的特定处理,你可以实现 didReceiveMemoryWarning 这个函数。

1.我们的工程是ARC的。
2.我们会在viewController里面持有大量子view的成员变量(strong)
3.我们实现了大量的viewDidUnload函数来释放 (2)里面持有的那个子view。

让我们看看我们的代码到了iOS6以后会发生什么事情。因为所有的子view都是strong持有的,这样会导致,及时系统内存警告导致了view的回收,他们也不会被真正的释放。于是乎,我们的程序可能就在后台被系统频繁的杀死。

iOS6之后,应该做的

1.不要把 subView 当成成员变量来持有。使用tag来操作。(其实不管在哪个版本最后都这么做)
2.不需要实现viewDidUnload,由系统自己来控制相关的内存释放
3.在需要的时候实现didReceiveMemoryWarning来释放一些业务数据减少内存的占用,不要操作UIView。

你可能感兴趣的:(【code_hyy_基础】didReceiveMemoryWarning)