Web サービスから画像リソースとテキストを取得するアプリを作成しています。画像のダウンロードに対処するために、素晴らしい AFNetworking の UIImageView+AFNetworking カテゴリを選択します。
ただし、メモリの問題に直面しています。私はInstrumentsのAllocationツールを使用しましたが、より多くの画像をロードするたびに、メモリ割り当てが常に増加し、サイズが 1 ~ 2 MB になることがわかりました。ソース コードを調べたところ、AFNetworking のコードにあることがわかりました。
正確なコード行は次のとおりです。
- (void)connectionDidFinishLoading:(NSURLConnection *)__unused connection {
self.responseData = [self.outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
[self.outputStream close];
[self finish];
self.connection = nil;
}
これにより、メモリ割り当ての 99.6% が占有されます。
プロジェクトで ARC を使用し、UITableView で UIImageViews を表示し、次のコードのようにセルを構成します。
[self.imageView setImageWithURLRequest:request
placeholderImage:nil
success:successBlock
failure:failBlock];
メモリの問題について誰かアイデアを提供できますか? メモリが割り当てられると、画像ビュー全体をクリアしてもクリアされないので、本当に頭痛の種です。しばらくすると、私のアプリはInstrumentsのReal Memory Usageウィンドウから 100MB 以上を占有します。
どんな助けでも大歓迎です!! 前もって感謝します!!