AFNetworking框架蔓纠,使用Instruments檢查Leaks時多柑,檢測到1000多個內(nèi)存泄漏的地方厦幅,定位到
[AFHTTPSessionManager manager]
語句中,幾乎程序中每個調(diào)用該方法的地方都出現(xiàn)了內(nèi)存泄漏诸蚕。去stackoverflow上也沒找到好的解決辦法踪宠。無意中在csdn中找到這篇文章:http://blog.csdn.net/wangkexu1986/article/details/51718707 自赔,其給出的解決辦法是將session的實例使用單例模式獲取。
static AFHTTPSessionManager *manager;
+(AFHTTPSessionManager *)sharedHttpSessionManager {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [AFHTTPSessionManager manager];
manager.requestSerializer.timeoutInterval = 10.0;
});
return manager;
}
AFHTTPSessionManager *manager = [AFNetworkingManager sharedHttpSessionManager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
將有問題的語句全部替換成單例后柳琢,再用instruments檢查绍妨,再也沒有出現(xiàn)泄漏的紅叉了