サーバーからNSDataオブジェクトに一連の画像を次のように読み込んでいます。
for (int i = 0; i < 36; i++)
{
NSURL *url = [NSURL URLWithString:@"http://12.34.56.78/image.jpg"];
NSData *data = [NSData dataWithContentsOfURL:url];
// Further processing here
}
問題は、各データオブジェクトの半分がメモリに保持されていることです。これは、機器のリークとしては表示されません。画像に関係するすべてのものを削除し、コメントの前に2行しかないため、これがNSDataオブジェクトであることがわかります。同じ動作が発生します。明示的に初期化と解放を割り当ててみましたが、同じ結果になりました。
これを理解するのが非常に難しいのは、この動作を再現するために2番目のプロジェクトを作成したのですが、それを実現できないことです。他のプロジェクトでは、このコードは期待どおりに機能します。だから私は尋ねています、何がそのような行動を引き起こすのでしょうか?非常に明白な何かを見落としているような気がします。