在使用Xcode的Leaks時(shí),一進(jìn)程序就出現(xiàn)了泄漏.....打擊不小。后來(lái)定位到是因?yàn)?/p>
定位錯(cuò)誤的位置
心想,AFN的單例也報(bào)錯(cuò),這怎么改?
于是Google,找到這篇文章使用AFNetworking 3 內(nèi)存泄露
說(shuō)是ARC機(jī)制中,SessionManager沒(méi)創(chuàng)建但是沒(méi)有地方釋放。解決方法就是講SessionManager改為單例即可。但是單例也會(huì)一直存在,沒(méi)有泄露但是卻占用內(nèi)存。
覺(jué)得可以將AFHTTPSessionManager的類(lèi)方法改為單例.....(菜鳥(niǎo)個(gè)人理解)
這是我解決部分代碼,就是改個(gè)單例
+ (instancetype)sharedManager {
static AFNRequest *afnManager;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
afnManager = [[self alloc] init];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer.timeoutInterval = 10.f;
afnManager.manager = manager;
});
return afnManager;
}
(第一次寫(xiě),搜半天怎么寫(xiě)代碼........附:類(lèi)似/* xx */方式,代碼用字符為``` 包圍就可以了)