iOS中出现循环引用时常见的三种情况
来源:互联网 发布:js数组定义的方式 编辑:程序博客网 时间:2024/06/06 18:40
出现循环引用的三种情况:
1.声明代理delegate属性
2.使用block时
3.使用NSTimer的时候
1.代理属性导致循环引用。
解决方案就是一定要记住,在声明delegate的时候修饰为weak(ARC)或者assign(MRC)
ARC环境下
//一代理属性为什么用weak,如果用strong的话会发生循环引用
//self --> person --> delegate --> self
// self.person = [[Person alloc] init];
// self.person.delegate = self;
MRC环境同理。
2.block导致的循环引用
这个比较复杂,我将它单独写在了一篇博文中.
block导致的循环引用问题的分析基解决办法
3.关于NSTimer导致的循环引用,我暂时不做讲解,准备充分时再补上。
NSTimer经常被作为某个类的成员变量,而NSTimer初始化时要制定self为target,容易造成循环引用。另一方面,若timer一直处于validate的状态,则其引用计数将始终大于0.
0 0
- iOS中出现循环引用时常见的三种情况
- iOS中常见的3种循环引用情况
- iOS中容易造成循环引用的三种场景
- ios-Swift中解除循环引用的三种方式
- iOS循环饮用的三种情况
- iOS中造成循环引用的集中情况
- iOS循环引用的三种场景
- 容易造成循环引用的三种情况
- iOS 容易引“起循环引用”的三种场景
- iOS容易造成循环引用的三种场景
- iOS容易造成循环引用的三种场景
- 【转】iOS容易造成循环引用的三种场景
- iOS容易造成循环引用的三种场景
- iOS容易造成循环引用的三种场景
- iOS容易造成循环引用的三种场景,(循环引用),内存泄漏
- 造成循环引用的情况
- ios中剪切板出现英文的情况
- ios中block的循环引用
- VS常用快捷键,真的是常用
- 关于实现自定义浏览器框架的相关细节问题
- RBAC权限管理
- 备忘-设计模式
- C# 多文件重命名思路及实现 下:实例
- iOS中出现循环引用时常见的三种情况
- 朱友鹏老师嵌入式课程观后感
- Android:Handler+Looper+MessageQueue+Thread(线程间的通信)随记
- callable,compile,eval,single,exec,递归
- 优化SQLServer数据库加快查询速度
- 天声人語 20151219 手書きの年賀状
- C++类模板的定义
- 堆排序
- 日经春秋 20151219