ARC环境下,自动释放UIViewController...
来源:互联网 发布:oracleen 知乎 编辑:程序博客网 时间:2024/05/09 06:47
一般ARC情况下,包括UIViewController, UINavigationController, UITabBarController等Controller在常规使用中,都是由ARC自动管理内存,自动释放。但是,在一些特殊视图框架结构中(比如:搜狐新闻客户端的动态列表),需要频繁的操作View,需要及时的释放Controller内存。
记住一条原则: ARC基于引用记数,当该对象被引用的记数为0时,则自动删除对象。
然而,自动释放也需要编程时的一些注意事项和技巧,否则,ARC无法释放,导致常驻内存。笔者在使用过程中就发现Controller的dealloc()方法一直无法被调用到,后来经多次测试,得到以下经验:
按下列顺序调用,即可成功释放Controller内存:
1. 将任何引用到该controller的变量设置为空,主要为各控件的Delegate,比如:UITableView,UIScrollView的各种delegate(可直接将这些控件设置为nil),controller中的其它变量可不管。
2. [controller.view removeFromSuperview];
3. controller.view = nil;
4. controller = nil;
到此,Controller的dealloc()方法成功被调用,内存成功释放。
0 0
- ARC环境下,自动释放UIViewController...
- 自动释放池和ARC
- arc mrc 自动释放 内存
- 自动释放池 ARC机制
- iOS arc(自动释放)和mrc(手动释放)下重写set方法
- arc下如何释放内存
- ARC模式下内存释放
- iOS 自动释放池ARC与MRC
- ios-ARC、MRC、自动释放池
- 在arc模式下 CGImage 释放问题
- 非ARC下的内存释放
- 在arc模式下 CGImage 释放问题
- ARC下如何实现内存释放
- ARC下如何实现内存释放
- ARC模式下解决释放对象问题
- OC-028.ARC自动内存管理的自动释放池
- 如何禁用iOS 5 ARC 自动释放 (Automatic Reference Counting) ?
- iOS开发视频教程—6.5自动释放池和ARC
- 802.11n 协议浅析
- 3、数值数据类型及表示-1(字节数)
- 数据挖掘系列(1)关联规则挖掘基本概念与Aprior算法
- 部署dubbo-admin-2.5.4碰到的一些问题
- Netbeans设计简易计算器学习
- ARC环境下,自动释放UIViewController...
- Session和cookie详解和区别perfect
- 对象
- 数据挖掘系列(2)--关联规则FpGrowth算法
- 测试用例
- php file_get_contents()函数
- Matlab十进制整数转换成二级制补码
- scala的list的常用的api总结
- Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition