iOS instrument 使用相关

AFN 引起的内存泄漏

2017-06-26  本文已影响58人  qjsxq

今天在做内存泄漏检测时,发现很多地方都有内存泄漏,而引起泄漏的原因居然AFN,

网上查了资料了解到由于ARC机制导致每当实例化Session类之后,都没有地方释放掉实例。而且

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manger并不是一个单例

又看了一遍AFN自带的Demo,发现他里面是创建了一个继承自AFHTTPSessionManager的类AFAppDotNetAPIClient ,而AFAppDotNetAPIClient里是用了单例创建的对象,代码如下:

+ (instancetype)sharedClient {

static AFAppDotNetAPIClient *_sharedClient = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

_sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:AFAppDotNetAPIBaseURLString]];

_sharedClient.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];

});

return _sharedClient;

}

我在项目中用了单例之后,AFN引起的内存泄漏确实没有了。

参考链接www.jianshu.com/p/361d4b56746b

blog.csdn.net/d1w2hj/article/details/51793065

上一篇下一篇

猜你喜欢

热点阅读