を画像データを読み込むことができません、写真の資産は今ゆっくりロードし、私は、コンソールにこのメッセージが表示されます:iOSの11:[ImageManagerの] iOSの11に更新した後
[ImageManagerの]画像データを読み込むことができません、 /VAR/
メディア/ DCIM/103APPLE/IMG_3064.JPG /モバイル
私は画像をロードするために、静的な関数を使用します:資産の
class func getAssetImage(asset: PHAsset, size: CGSize = CGSize.zero) -> UIImage? {
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
option.isSynchronous = true
var assetImage: UIImage!
var scaleSize = size
if size == CGSize.zero {
scaleSize = CGSize(width: asset.pixelWidth, height: asset.pixelHeight)
}
manager.requestImage(for: asset, targetSize: scaleSize, contentMode: .aspectFit, options: option) { (image, nil) in
if let image = image {
assetImage = image
}
}
if assetImage == nil {
manager.requestImageData(for: asset, options: option, resultHandler: { (data, _, orientation, _) in
if let data = data {
if let image = UIImage.init(data: data) {
assetImage = image
}
}
})
}
return assetImage
}
リクエスト画像は、通常は常に成功し、このメッセージを出力します。 requestImageData関数のみを使用すると、そのようなメッセージは表示されませんが、Appleカメラで作成した写真の向きが失われ、大量の画像を読み込んでいる間にさらに問題が発生します(アプリで画像スライドショーを使用します)。
アップルはいつもアップデートをするつもりです、多分誰かが解決策を得ましたか?ユーザーのカメラに大きなリストがある場合、資産を読み込むことさえできません。 requestImageDataへの切り替えは、今では頻繁にデータを取得するため、私にとってはオプションではありません。
私はこの機能を1回だけ呼び出すことを指摘したいと思います。 UITableViewなどでは使用されていません。私はグローバルに初期化されたマネージャとオプションを持つ親指のために他のコードを使用していますので、資産はまったくゼロではありません。 ユーザーが特定の親指をクリックしたときにのみ呼び出します。 ギャラリーに5000枚の写真があると、アセットへの接続が過負荷になってしまい、後でリクエストやクラッシュを処理できません。 多くの質問があります。
iOS 11にアップグレードしてから同じ問題が発生しています。サムネイル用に十分なサイズ(256 x 256)を要求すると、すべてが読み込まれます。同じコードを大きなサイズに使用すると、約20%で失敗します。まだパターンを見つけていない。 – user1055568
修正プログラムを見つけましたか? – kye
本当は、警告は依然として永続的です。 –