一个PHImageManager获取图片要注意的坑

时间:2024-02-20 11:35:26
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
        // 同步获得图片, 只会返回1张图片
        options.synchronous = YES;
        options.resizeMode = PHImageRequestOptionsResizeModeFast;
        options.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat;
        [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:CGSizeMake(200, 300) contentMode:PHImageContentModeAspectFill options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            
        }];

 一般可以正常获取到图片。但是有时在手机系统相册中可以看到的图片,而自己开发的App想要浏览大图却获取不到图片。可能的原因有可能你的图片在iCloud上,怎么确定呢?可以打印一下resultHandler回调中的info,里面如果有PHImageResultIsInCloudKey = 1,那么你需要在options中设置一个字段networkAccessAllowed=YES,这样就能获取到图片了。