【发布时间】:2015-09-11 07:44:49
【问题描述】:
大约 10% 的时间 PHImageManager.defaultManager().requestImageForAsset 在第一次返回有效但“降级”的 UIImage 后返回 nil 而不是有效的 UIImage。没有错误或我能看到的其他线索在带有 nil 的信息中返回。
这似乎发生在需要从 iCloud 下载的照片上,同时启用了 iCloud 照片库和优化 iPad 存储。我已尝试更改选项、大小等,但似乎没有任何影响。
如果我在失败后重试 requestImageForAsset,它通常会正确返回 UIImage,但有时需要重试几次。
知道我可能做错了什么吗?还是只是照片框架中的一个错误?
func photoImage(asset: PHAsset, size: CGSize, contentMode: UIViewContentMode, completionBlock:(image: UIImage, isPlaceholder: Bool) -> Void) -> PHImageRequestID? {
let options = PHImageRequestOptions()
options.networkAccessAllowed = true
options.version = .Current
options.deliveryMode = .Opportunistic
options.resizeMode = .Fast
let requestSize = !CGSizeEqualToSize(size, CGSizeZero) ? size : PHImageManagerMaximumSize
let requestContentMode = contentMode == .ScaleAspectFit ? PHImageContentMode.AspectFit : PHImageContentMode.AspectFill
return PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: requestSize, contentMode: requestContentMode, options: options)
{ (image: UIImage!, info: [NSObject : AnyObject]!) in
if let image = image {
let degraded = info[PHImageResultIsDegradedKey] as? Bool ?? false
completionBlock(image: photoBlock.rotatedImage(image), isPlaceholder: degraded)
} else {
let error = info[PHImageErrorKey] as? NSError
NSLog("Nil image error = \(error?.localizedDescription)")
}
}
}
【问题讨论】:
-
我也遇到了同样的问题,你找到解决办法了吗?
-
我看到了同样的问题。我认为这是一个错误并已提交错误报告。
-
我在设置
options.deliveryMode = .HighQualityFormat时看到了这种情况,但在我设置options.deliveryMode = .Opportunistic时却没有 -
@AlfieHanssen 很遗憾对我没有任何影响
-
谁能告诉我这个stackoverflow.com/questions/55488998/…的解决方案?我也面临与视频相同的问题。
标签: ios photosframework