最近由于项目需求升级到AFN3,使用Instruments做内存泄漏分析时发现每个请求都有内存泄漏,调查发现原来是
AFHTTPSessionManager多次创建却不能释放掉
于是将其写入单例, 问题解决
static AFHTTPSessionManager *manager;
+ (id)shareInstance //获取网络请求单例
{
static NetworkHelper *helper;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (helper == nil)
{
helper = [[NetworkHelper alloc] init];
manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer.timeoutInterval = 10;
[manager.responseSerializer setAcceptableContentTypes: [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/css", nil]];
}
});
return helper;
本文介绍在使用AFNetworking 3.x版本时遇到的内存泄漏问题,并提供了解决方案:通过将AFHTTPSessionManager实例化为单例模式来避免重复创建导致的内存泄漏。

744

被折叠的 条评论
为什么被折叠?



