现在的位置: 首页 > 综合 > 正文

viewDidUnload、didReceiveMemoryWarning、dealloc

2017年08月17日 ⁄ 综合 ⁄ 共 698字 ⁄ 字号 评论关闭

viewDidUnload:在发生内存警告的时候如果本视图不是当前屏幕上正在显示的视图的话, viewDidUnload将会被执行,本视图的所有子视图将被销毁,以释放内存,此时开发者需要手动对loadView、viewDidLoad中创建的对象释放内存。 因为当这个视图再次显示在屏幕上的时候,loadView、viewDidLoad 再次被调用,以便再次构造视图。而对于不易重新构建的东西,如重新从服务器下载的数据,则可以放在init里构建,viewDidUnload就不要将其释放了。ios5这个方法会自动被调用,ios6这个方法被放弃了。


didReceiveMemoryWarning:在发生内存警告时执行,负责释放掉一些已经缓存的数据、图片等当前没有在使用的资源,但他们必须能够重新被创建。


dealloc:是当前 viewController 被释放的时候,清空所有当前 viewController 里面的实体和数据来释放内存,该方法也是自动调用的,无需手动执行。举例说当modalView 被 dismissModalViewControllerAnimated 或navigationController 回到上一页的时候,这个方法就会被自动调用。因为这个页面已经不再使用了,所以可以把所有实体和数据都释放(release)掉。


ViewDidUnload与dealloc的区别:

viewDidUnload是内存除当前以外所有 viewController 同时执行,而 dealloc 只是当前 viewController 执行。

(看了很多网上介绍这些的文章,今儿个把这些总结了放在一起,希望大神们能给指点一下害羞

抱歉!评论已关闭.