最近由于项目需求升级到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;