我如何在没有 ALAssetsLibrary 的情况下从 "UIImagePickerControllerReferenceURL" 获取 UIImage

How can i get UIImage from "UIImagePickerControllerReferenceURL" without ALAssetsLibrary

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

    NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
    NSLog(@"url : %@",url);
}

我知道我们总是使用 ALAssetsLibrary 通过 UIImagePickerControllerReferenceURL 获取 UIIMage。但它已被弃用,我还有其他方法吗?

顺便说一句,代码的输出如下:

assets-library://asset/asset.JPG?id=106E99A1-4F6A-45A2-B320-B0AD4A8E8473&ext=JPG

查看苹果官方文档,发现ALAssetsLibrary被PHPhotoLibrary取代了。

我的天!终于我找到答案了:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

    NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
    PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];
    PHAsset *asset = result.firstObject;
    PHImageManager *manager = [PHImageManager defaultManager];
    [manager requestImageForAsset:asset targetSize:CGSizeMake(100, 100) contentMode:PHImageContentModeAspectFit options:nil resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
        NSLog(@"%@",result);
    }];
}

由于 ALAssetsLibrary 在 ios9 中已弃用。使用 Photos Framework Reference.