Ios 从PHImageFileURLKey获取的URL读取

Ios 从PHImageFileURLKey获取的URL读取,ios,image,file,ios8,Ios,Image,File,Ios8,iOS 8的照片框架能够使用PHImageFileURLKey返回图像的URL。然而,我似乎无法阅读此URL。我只需要读访问权限。到目前为止,我尝试使用给定URL的任何地方,都会被视为该文件根本不存在。如何使用URL获取数据 成功返回相集和URL的代码: PHFetchResult* phFetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil] PHImageManager *manage

iOS 8的照片框架能够使用PHImageFileURLKey返回图像的URL。然而,我似乎无法阅读此URL。我只需要读访问权限。到目前为止,我尝试使用给定URL的任何地方,都会被视为该文件根本不存在。如何使用URL获取数据

成功返回相集和URL的代码:

PHFetchResult* phFetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil]
PHImageManager *manager = [PHImageManager defaultManager];
PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init];
options.synchronous = YES; // Force sequential work. We have nothing to do until this block returns.
PHAsset* asset = [phFetchResult objectAtIndex:index];
[manager requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage *resultImage, NSDictionary *info)
 {
     _image = resultImage;
     NSURL* fileURL = [info objectForKey:@"PHImageFileURLKey"];
     _imageLocation = [fileURL relativePath];
 }];
未找到显示任何内容的代码:

NSURL* fileURL = [info objectForKey:@"PHImageFileURLKey"];
NSLog(@"File exist?: %d", [[NSFileManager defaultManager] fileExistsAtPath:[fileURL relativePath]]);

我目前的解决方法是获取给定的UIImage并将其保存到/tmp目录,然后使用该URL。这不是一个理想的解决方案,我真的很想知道PHImageFileURLKey的用途。我研究了
PHImageFileURLKey
,我认为没有办法通过
PHImageFileURLKey
找到图像数据,但是你可以通过使用资产本地标识符而不是
PHImageFileURLKey
来找到图像数据

我的代码供您参考:

您可以使用资产的本地标识符,并获得相应的映像

PHFetchResult *savedAssets = [PHAsset fetchAssetsWithLocalIdentifiers:@[asset.localIdentifier] options:nil];
    [savedAssets enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {

        //this gets called for every asset from its localIdentifier you saved
        PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
        imageRequestOptions.synchronous = YES;
        imageRequestOptions.deliveryMode = PHImageRequestOptionsResizeModeFast;

        [[PHImageManager defaultManager]requestImageForAsset:asset targetSize:CGSizeMake(50,50) contentMode:PHImageContentModeAspectFill options:imageRequestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            NSLog(@"get image from result");

        }];
    }];

运气好吗?我用PHImageFileURLKey保存了图像,需要弄清楚如何使用这些信息从照片库中检索它们,但照片似乎仍然不可能。对于其他一些媒体类型,您会得到一个可用的URL。我坚持从PHAsset中检索UIImage,并将副本保存到我选择的目录中。对于显示缩略图网格,以下方法非常快速:
[manager requestImageForAsset:asset targetSize:_ThumbnailSizeContentMode:PhImageContentMode默认选项:nil resultHandler:^(UIImage*resultImage,NSDictionary*info){cell.imageView.image=resultImage;}]查看我提出的与此相关的问题: