AFN 引起的内存泄漏

今天在做内存泄漏检测时,发现很多地方都有内存泄漏,而引起泄漏的原因居然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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容