PHImageManagerを使って、requestImageしていると、コールバックが複数呼ばれることがあります。
最初に、非常に荒い画像イメージが返されて、しばらくすると、詳細な画像イメージが返されます。
とりあえず、何か表示しておいて、その後、詳細なイメージにアップデートするというような使い方を想定してるんだと思います。
でも、詳細な画像イメージが返されずにエラーが返ってくるケースでハマってましたので、メモ
解決策は、以下のような形で、isNetworkAccessAllowed = true で使用することでした。
コード
1 2 3 4 5 6 |
let option = PHImageRequestOptions() option.deliveryMode = .highQualityFormat option.isNetworkAccessAllowed = true PHImageManager().requestImage(for: targetAsset, targetSize: size, contentMode: .aspectFit, options: option) {...}) |
写真がiCloud上にあるならば、この制限は非常によくわかるんですが、そうでない時にも必要みたいです。
Sponsor Link