1

それは私のコードです。メモリを処理するためにどこが欠けているのか教えていただけますか? Xコード4.6を使用しています。また、他のメモリリークを取得するために、 instrument をチェックしました。ほとんどすべての「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 に答える