虽然我按照_Block,内存泄漏发生@ ASIHTTPRequest

时间:2013-07-04 12:16:34

标签: ios objective-c memory-leaks

它是我的代码,你可以帮助我在哪里处理内存吗?我正在使用X-Code 4.6。而且我还检查了仪器,以获得其他内存泄漏。它几乎显示所有“ASIHTTPRequest”。我不像[请求发布]手动处理;是否有必要修复内存泄漏?提前致谢

       __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
        [request setCompletionBlock:^{
                       }];
        [request setFailedBlock:^{

        }];
        [request setTimeOutSeconds:60];
        [request startAsynchronous];

2 个答案:

答案 0 :(得分:2)

由于在块和请求对象之间创建的保留周期,它会泄漏。

尝试以下方法:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
__weak ASIHTTPRequest *weakRequest = request;
[request setCompletionBlock:^{
                   }];
[request setFailedBlock:^{

}];
[request setTimeOutSeconds:60];
[request startAsynchronous];

干杯..

修改

ASIHTTPRequest已经not supported了,尝试转移到AFNetworking,这是最好的。

答案 1 :(得分:0)

然后这样做:

    __weak __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setCompletionBlock:^{
        __strong ASIHTTPRequest *requestInBlock = request;
        //your code, and replace all refrences of request inside the block with requestInBlock.
    }];
    [request setFailedBlock:^{
        //same here
    }];
    [request setTimeOutSeconds:60];
    [request startAsynchronous];

试一试。