1

它是我的代码,你能帮我在哪里处理内存吗?我正在使用 X-Code 4.6。而且我还检查了仪器,以获取其他内存泄漏。它几乎显示了所有“ASIHTTPRequest”。我没有像 [request release] 那样手动处理;有必要修复内存泄漏吗?提前致谢

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

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

2 回答 2

2

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

试试下面的:

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

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

干杯..

编辑:

不再支持ASIHTTPRequest ,尝试迁移到AFNetworking,它是最好的。

于 2013-07-04T13:12:33.603 回答
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];

试试这个。

于 2013-07-04T13:15:38.697 回答