Webからダウンロードしたアイコンのリストを、テキストとともに表形式で表示しています。サーバー側でアイコンを変更できます。新しいアイコンが利用可能になり次第、アイコンを交換する必要があります。次のコードを使用してみます。
[imgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"table_avatar_icon"] options:SDWebImageCacheMemoryOnly];
そして、リフレッシュコールバックで[[SDImageCache sharedImageCache] clearMemory];
を呼び出しますが、キャッシュの内容は削除されません。さらに、アプリケーションを閉じて再度開いても、イメージはまだそこにあります。
キャッシュをクリアする方法は1つしか見つかりませんでした。[[SDImageCache sharedImageCache] clearDisk];
を呼び出してください。これは、アプリを閉じて再度開いた後にのみ機能します。
SDWebImageでディスクキャッシュを使用しないようにするにはどうすればよいですか?
SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache clearMemory];
[imageCache clearDisk];
これらのコード行もdidReceiveMemoryWarning
に入れることを忘れないでください。
問題がある場合はソースを見つけました。 SDImageCache
で使用されているシングルトンパターンにだまされたようです。 UIImageViewで使用される拡張機能のキャッシュは、SDWebImageManager
のインスタンス変数を持つSDImageCache
によって制御されています。拡張機能のキャッシュをクリアする場合は、clearDiskやclearMemoryなどのimageCache
のメソッドを呼び出す必要があります。