热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11:[ImageManager]无法加载图像数据

如何解决《iOS11:[ImageManager]无法加载图像数据》经验,为你挑选了1个好方法。

更新到iOS 11后,照片资产现在加载缓慢,我在控制台中收到此消息:

[ImageManager]无法加载图像数据/var/mobile/Media/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相机拍摄的照片会失去方向,在加载大量图像时我会遇到更多问题(我在我的应用程序中使用图像幻灯片).

在更新时,Apple总是很糟糕,也许有人得到了解决方案如何解决这个问题?当用户相机中存在大量资产时,它甚至无法加载资产.切换到requestImageData对我来说不是一个选项,因为它现在经常带来零数据.

我想指出,我只调用此函数一次.它没有在UITableView等中使用.我使用其他代码用于全局初始化管理器和选项的拇指,因此资产绝对不是零等等.我只在用户点击某个拇指时调用此函数.当画廊有5000张照片时,可能与资产的连接过载,以后它无法处理请求和崩溃?这么多的问题.



1> sachadso..:

嘿,我也有警告,这对我有用.

更换 CGSize(width: asset.pixelWidth, height: asset.pixelHeight)PHImageManagerMaximumSizerequestImage通话中移除警告日志

希望这可以帮助,


推荐阅读
author-avatar
果丽珍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有