この種のジョブに独自のキャッシュ/ディスク/メモリハンドラを実装しないようにするには、AFNetworkingまたはSDWebImageを使用することを強くお勧めします。
画像とそのキャッシュを設定する方法についてSDWebImageの例:
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
これは自動的にあなたのためのすべてのキャッシュ/ディスク/メモリを処理します。
//設定したメモリサイズの制限(高い値に設定するときにメモリエラーを回避するために古いデバイスに確認してください:ここで
あなたはSDWebImageでキャッシュを処理する方法の一例です。)
[[SDImageCache sharedImageCache] setMaxMemoryCost:****];
//クリアディスクキャッシュ
[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
}];
//メモリキャッシュのクリア
[[SDImageCache sharedImageCache] clearMemory];
私はNSUserDefaultsから離れて滞在するか、画像を設定し、上記の例では、辞書にまたは配列メモリエラーやアプリケーションのクラッシュ/パフォーマンスを避けることができます。
答えをありがとう。私はその考えを得た。 UIViewControllers(NSUserDefault ..のようなもの)の向こう側にNSCacheメモリが動作していますか? – ekashking
@ekashkin NSCacheの構文はNSUserDefaultsと似ています。キャッシュに保存する必要があるすべてのオブジェクトは、UIImageのようにNSSecureCodingプロトコルを実装する必要があります – Hamsternik