Photos.framework抛出<Error>:ImageIO:PNG zlib错误但仍提供UIImage

Ale*_*rth 6 frameworks objective-c uiimage ios photosframework

我在这里找到了一个类似的问题: iOS 8(Swift)如何摆脱这个错误:ImageIO:PNG zlib错误?但是有一些差异.

PHAsset从一个选择器中获取- 图像下载并正确显示(它使用PHCachingImageManager该类).

但是,当我尝试稍后从资产请求图像时:

[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:AssetTargetSize
    contentMode:PHImageContentModeAspectFit options:nil 
    resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
        if (result)
            _image = result;
}
Run Code Online (Sandbox Code Playgroud)

result变量是指向一个UIImage对象,但不是有效的-我不能把它变成NSData的也不我可以通过xcode的快速查找.

在日志中我只收到以下消息:仅此<Error>: ImageIO: PNG zlib error而已.

我尝试按照链接问题的建议使请求同步,但没有区别.

PHAsset照片应用程序和照片选择器中都可以查看指向的图像.

kar*_*yan 0

我们需要启用同步选项。

PHAsset *asset = array[i];
            PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
             options.synchronous  = YES;
            PHImageManager *imageManager = [PHImageManager defaultManager];
            [imageManager requestImageForAsset:asset targetSize:CGSizeMake(200, 200) contentMode:PHImageContentModeAspectFit options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
                badge = (UIImage *)result;
            }];
Run Code Online (Sandbox Code Playgroud)