2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PINRemoteImageのキャッシュに保存された画像をロードする方法

Posted at

動機

PINRemoteImageManagerでキャッシュした画像をUIActivityViewControllerを使ってシェアしたかった。
そのときにどうやってキャッシュしたUIImageを取得するかわからなかったため。

方法

PINRemoteImageManagerのdownloadImageメソッドを使う
用意されたメソッドを使うだけだが意外と調べても出てこなかったのでメモ。

guard let url = url else { return }
_ = PINRemoteImageManager.shared().downloadImage(with: url) { (result) in
  // resultはPINRemoteImageManagerResult型でimageプロパティから画像が取得できる
  var activityItems: [Any] = [result.image]
}

こそっとリファレンスを見てみる

Summary

Download or retrieve from cache the image found at the url.
All completions are called on an arbitrary callback queue unless called on the main thread and the result is in the memory cache (this is an optimization to allow synchronous results for the UI when an object is cached in memory).

日本語訳

URLで見つかったイメージをダウンロードするか、キャッシュから取得します。
すべての補完は、メイン・スレッドで呼び出され、その結果がmemory cache(これは、オブジェクトがメモリにキャッシュされたときのUIの同期結果を可能にする最適化です。)にない限り、任意のcallbackで呼び出されます。

キャッシュがあればキャッシュから取得、無ければダウンロードしてくれる便利メソッドでした。
Pinterest様様ですね。

Declaration

downloadImageWithURL:(nonnull NSURL *)url
          completion:(nullable PINRemoteImageManagerImageCompletion)completion;```
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?