博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于AFNetWorking3.0内存泄漏的问题
阅读量:6948 次
发布时间:2019-06-27

本文共 821 字,大约阅读时间需要 2 分钟。

问题:对于基于AFNetWorking3.0的项目,在未处理直接通过AFN3.0进行网络请求,在leaks测试下会出现内存泄露的问题。

原因:观察发现每次发生泄漏的地方都是 “AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];”中,每次网络请求都初始化一个实例对象,但是未得到释放,造成了内存泄漏。

解决办法:解决方法是创建一个继承AFHTTPSessionManager的单例对象,每次网络请求都调用这个单例方法。

(下面是写在delegate中的办法,需要用到网络请求时别的不变,manager的初始化改为使用“AFHTTPSessionManager *manager = [AppDelegate shareManager];”即可)

 

代码如下

.h头文件中

#import "AFNetworking/AFNetworking.h"

 

/**

 *  单利方法

 *

 *  @return 实例对象

 */

+(AFHTTPSessionManager*)shareManager;

 

.m文件中

#pragma mark - shareManager

/**

 *  获得全局唯一的网络请求实例单例方法

 *

 *  @return 网络请求类的实例

 */

 

+(AFHTTPSessionManager *)shareManager {

    static AFHTTPSessionManager *manager=nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        manager = AFHTTPSessionManager manager];

});

    

    return manager;

}

转载于:https://www.cnblogs.com/iicecream/p/7130946.html

你可能感兴趣的文章
随机生成一个不重复的身份码,包含数字和字母
查看>>
王彪-20162321-实验二 树
查看>>
HDU 1754 线段树裸题
查看>>
异常处理
查看>>
Mysql事件学习
查看>>
整合思路、步骤
查看>>
本地==〉Github(push)
查看>>
Ural 1004 FLOYD最小环问题
查看>>
html5——canvas画布
查看>>
数据标准化处理,data.mean和data.std
查看>>
Ajax(简介、基础操作、计算器,登录验证)
查看>>
用ElasticSearch存储日志
查看>>
Linux定时备份mysql数据库
查看>>
[中英双语] 数学缩写列表 (List of mathematical abbreviations)
查看>>
[leetcode-150-Evaluate Reverse Polish Notation]
查看>>
【转】Github轻松上手5-站在巨人的肩膀上(Fork)
查看>>
》》HTML5 移动页面自适应手机屏幕四类方法
查看>>
Ext 6.5.3 classic版本,自定义实现togglefield开关控件
查看>>
bzoj1194
查看>>
内购审核被拒-[environment-sandbox]
查看>>