我使用此代码将a转换PHAsset为完整大小UIImage:
func getOriginalAsset(asset: PHAsset, onComplete: @escaping (UIImage?, [AnyHashable: Any]?) -> ()) {
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
option.isNetworkAccessAllowed = true
manager.requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFit, options: option) { (image, info) in
onComplete(image, info)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,每次我尝试运行此代码时,我都会从控制台收到此警告:
[ImageManager] First stage of an opportunistic image request returned a non-table format image, this is not fatal, but it is unexpected
Run Code Online (Sandbox Code Playgroud)
题
为什么我会收到此警告?
我该如何解决这个问题?
更新
尽管有警告,我运行此代码时一切正常.我无法忍受我的应用程序中的任何警告/错误(也许我迟早要学会接受它)
a.m*_*sri 10
尝试使用这段代码,我添加isSynchronous = true你可以阅读这个文件isSynchronous
我将快速向您解释问题的原因出现此问题是因为opatation显示直到图像结束并且您要求大尺寸图像可能需要一些时间,所以您应该在等待期间进行线程直到获取图像的过程
func getOriginalAsset(asset: PHAsset, onComplete: @escaping (UIImage?, [AnyHashable: Any]?) -> ()) {
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
option.isNetworkAccessAllowed = true
option.isSynchronous = true
manager.requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFit, options: option) { (image, info) in
onComplete(image, info)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1544 次 |
| 最近记录: |