アプリに保存されているすべてのリモート画像を追跡するためのデータストアを構築中です。参照されているすべての画像を追跡するシングルトンを使用することにしました。
私が覚えているように、iOS は、現在のビュー コントローラーなどによって参照されているかどうかにかかわらず、最近の使用状況に基づいて、メモリからオブジェクトを自動的にパージし始めます。ただし、これらの画像をデータ ストアに保存すると、それらのオブジェクトは常に店そのもの。メモリ管理の私の解決策は、イメージが最後に呼び出されたときを追跡し、データ ストアに格納されているイメージの数とサイズに制限を設け、古いものを古いものから削除することでした。
この解決策は良いものですか?なぜですか、そうでないのですか?Apple の自動メモリ管理に頼る必要がありますか、それとも独自のマネージャーで問題ありませんか?
さらなる説明:
私のビュー コントローラーの 1 つから画像を要求すると、最終的に私のソリューションでどのように表示されるかを次に示します。
[[HollerImages store]getImageWithUrl:@"https://www.google.com/logos/classicplus.png"
completionBlock:^(BOOL succeeded, UIImage *image){
if( succeeded ){
//Update the UIImageView with the returned image
}
}];
その後、ストアはアプリで現在参照されている画像の数を管理し、事前に定義された制限に達すると、古い画像の参照を自動的に解除します。考え?