2017-04-03 12 views
1

現在のシステムはこのように動作します。 オブジェクトには、アプリの画像が更新されたことを示すタイムスタンプがあります。このタイムスタンプは、イメージがストレージにアップロードされると更新されます。古いイメージは新しいイメージに置き換えられます。Firebase iOSストレージイメージ

私のiOSデベロッパー(Frank)は問題があり、SDWebImageを使用して画像をセルにロードしています。しかし、彼が同じパスを使用し、オブジェクトの画像タイムスタンプが変更された場合、SDWebImageは画像をリロードしません。これは、URLを使用して画像をキャッシュするためです。

どうすれば解決できますか?

+0

これはお使いになりましたか? http://stackoverflow.com/a/16277427/6203030私はすべてのキャッシュをクリアしない答えを探しています。または、この1つ:http://stackoverflow.com/questions/8751782/how-to-use-sdwebimage-without-any-cache-for-one-instance あなたが達成しようとしているコードを共有することはできますか? –

答えて

0

キャッシュされたイメージを削除する必要があります。 SDImageCacheを使用すると、SDWebImageのキャッシュデータを管理できます。また、キャッシュされた画像を削除できるプロパティもあります。

もちろん、キャッシュされたすべての画像やURL付きの画像は1つだけです。 私のプロジェクトのコードは以下の通りです。

SDImageCache * cache = [SDImageCache sharedImageCache];

[キャッシュremoveImageForKey: "削除するイメージのキャッシュURL" fromDisk:YES withCompletion:nil];

私にとってはうまく動作し、キャッシュされたすべてのデータを削除することはできません。 希望します。

0

私は全く同じ問題があります。

ストレージオブジェクトを参照するためにデータベースを使用している場合は、以下のように動作します。

イメージの作成時にファイルの名前は変更されませんが、別のダウンロードリンクがあります(Firebaseコンソールのメタデータにあります)。標準のFirebaseストレージメソッドを使用する代わりに、SDImageCacheで一意のダウンロードURLを使用します。画像が更新されるたびに、このURLが更新され、SDImageCacheはそれを新しいものとして認識します。

imageToSet.sd_setImage(with: URL(string: imageUrl), 
placeholderImage: "Profile-Placeholder") 
関連する問題