iOS学习笔记61-AFNetworking造成的内存泄露处理
来源:互联网 发布:道路算量用什么软件 编辑:程序博客网 时间:2024/05/17 22:48
-(void)startRequestInfo{
__weak typeof(self)weakself = self;
weakself.manager=[AFHTTPSessionManager manager];
weakself.manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"text/html"];
[weakself.manager GET:weakself.path parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if ([weakself.delegate respondsToSelector:@selector(sendMessage:andPath:)]) {
[weakself.delegate sendMessage:responseObject andPath:weakself.path];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
}
block回调时想要修改外部属性的值,在ARC下如果你不弱化类指针,就会警告你循环引用.原因在于block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,你在ARC下strong去修饰属性,为了持有住这个属性引用计数器会加1,程序结束完进入自动释放池,strong加的1会自动被释放,然而你进block时,block从栈内存拷贝到堆内存给你加了1,block出栈后加的1并没有做处理,内存就泄露了.解决方式就是在使用block时去弱化你要在block里引用的self,即__weak typeof(self)weakself = self;
1 0
- iOS学习笔记61-AFNetworking造成的内存泄露处理
- iOS开发 ARC下造成内存泄露的问题
- 定时器造成的内存泄露
- iOS学习笔记-----AFNetworking的使用
- AFNetworking和Reachability 的内存泄露
- Silverlight - 绑定造成的内存泄露
- 可能造成内存泄露的东西
- Android内存泄露造成的OOM问题
- 避免引用Context造成的内存泄露
- Android asynTask造成的内存泄露
- 单例模式造成的内存泄露
- subString()造成内存泄露
- 内存泄露检测及cvClone造成的泄露
- Java泄露及造成内存泄露的原因
- 【IOS】总结-AFNetworking学习笔记
- 【IOS】总结-AFNetworking学习笔记
- java处理内存泄露与内存溢出的学习总结
- IOS中单例怎么销毁,会造成内存泄露吗?
- Ajax_showHint() 函数
- 阿里云服务器云数据库免费体验(Java Web详细实例)
- Django学习随手记(四)
- Android源代码的下载,编译和运行
- Eclipse中java文件生成jar文件的方法
- iOS学习笔记61-AFNetworking造成的内存泄露处理
- 用CSS3特性直接绘图,半圆角,三角形,圆形等
- Take Advantage of 3D Touch 利用3D的优势
- xcode 注释
- 常用金融概述
- android studio 配置ndk方案
- Java并发-类库新组件 - CountDownLatch 理解
- 设计模式总观
- 写在CSDN的最后一篇博客