有关AFN的内存问题

通过Instrument检查到是由于AFNetworking这个库导致的内存泄漏,解决方法就是: 

将AFHTTPSessionManager的实例使用单例模式获取。

原先在网络请求类中获取AFHTTPSessionManager是通过如下方法

AFHTTPSessionManager*manager = [[AFHTTPSessionManageralloc]initWithBaseURL:[NSURLURLWithString:@""]];

此方法就是导致内存泄漏的罪魁祸首,所以需要用单例获取AFHTTPSessionManager对象。

在AFHTTPSessionManager类中添加单例:

staticAFHTTPSessionManager*manager;

+(AFHTTPSessionManager*)sharedHttpSessionManager {

staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

manager = [AFHTTPSessionManagermanager];

manager.requestSerializer.timeoutInterval=10.0;

});

returnmanager;

}

AFHTTPSessionManager*manager =[[AFHTTPSessionManagersharedHttpSessionManager]initWithBaseURL:[NSURLURLWithString:@""]];

或AFHTTPSessionManager*manager = [类名 sharedHttpSessionManager];

你可能感兴趣的:(有关AFN的内存问题)