Swift4でiOSアプリを開発中です。
SDWebImageのバージョンは4.2.3
CollectionViewのCellにImageViewをのせて、そのImageをSDWebImageを使って自社サーバーから非同期読み込み&キャッシュしています。
コードは以下の通り。
Swift
1cell.photoImageView.sd_setImage( 2 with: URL(string: imageUrl), 3 placeholderImage: UIImage(), 4 options: .cacheMemoryOnly) { (image, error, type, url) in 5 guard let _image = image else { 6 cell.photoImageView.alpha = 1.0 7 cell.photoImageView.setNeedsDisplay() 8 return 9 } 10 if type == SDImageCacheType.none { 11 UIView.animate(withDuration: 0.3, animations: { 12 cell.photoImageView.image = _image 13 cell.photoImageView.setNeedsDisplay() 14 cell.photoImageView.alpha = 1.0 15 }) 16 } else { 17 cell.photoImageView.image = _image 18 cell.photoImageView.setNeedsDisplay() 19 cell.photoImageView.alpha = 1.0 20 } 21}
基本的に上記のコードで問題なく動いているのですが、サーバー上の画像が変わる場合があります。(URLは変更なし)
URLが変わらないため、キャッシュから画像を読み込んでしまい、画像の変更がアプリ側で反映されません。
APIのレスポンスに画像の変更日のデータが '1519291764' のような形で返ってきていますので、
SDWebImageでキャッシュした日時と比較して、日付が新しくなっていれば画像をサーバーから取得し直す、
という方法を考えたのですが、その方法がわかりません。
SDWebImageを使用していて、サーバー側で画像が変更された場合、どのような対応が適切なのかご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。