Objective c 目标-C/C库-如何检索资产的正确路径

Objective c 目标-C/C库-如何检索资产的正确路径,objective-c,alassetslibrary,Objective C,Alassetslibrary,我实现了一个简单的方法,可以找到设备内部图像的路径。实际上,我正在使用iPhone模拟器。这是我正在使用的代码: [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if (group) { [group setAssetsFilter:[ALAssetsFilter allPhotos]]; [group e

我实现了一个简单的方法,可以找到设备内部图像的路径。实际上,我正在使用iPhone模拟器。这是我正在使用的代码:

[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
    if (group) {
        [group setAssetsFilter:[ALAssetsFilter allPhotos]];
        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){
            if (asset){
                NSString *description = [asset description];
                NSRange first = [description rangeOfString:@"URLs:"];
                NSRange second = [description rangeOfString:@"?id="];
                NSString *path = [description substringWithRange: NSMakeRange(first.location + first.length, second.location - (first.location + first.length))];
                [idList addObject:path];
            }
        }];
    }        
    } failureBlock:^(NSError *error) {
        NSLog(@"error enumerating AssetLibrary groups %@\n", error);
    }
  ];
}); 
在这一点上,如果我记录我收到的图像的路径:“资产-library://asset/asset.JPG“,就我所知,这并不是图像位置的完整路径。你还好吗?那么,如何获得资产的整个路径


谢谢

您没有从资产描述中正确检索URL

考虑使用ALAsset valueForProperty:来简化任务

NSURL *url = [asset valueForProperty:ALAssetPropertyAssetURL];
稍后,您可以使用url从库中检索资产,方法是使用AlasSetLibrary assetForURL:

[library assetForURL:self.url resultBlock:^(ALAsset *asset) {

    } failureBlock:^(NSError *error) {

    }];

谢谢你的帮助。我使用了以下代码:“NSString*path=[asset valueForProperty:AlassetPropertyAsetUrl]”。无法识别“absoluteString”。用日志返回给我:“资产-library://asset/asset.JPG?id=168BA548-9C81-4B08-B69C-B775E5DD9341&ext=JPG”。这是完整的URL吗?我不知道,我期待着类似这样的东西:“folder1/folder2/anotherFolder/image.jpg”。事实上,我不知道身份证号码是什么意思。知道吗?它不是实际的文件系统url,因为沙盒的缘故,您无法获取它。相反,API会提供一个具有上述格式的代理url。再次感谢。但在这一点上,我有一个新的问题。在我的情况下,如何使用代理url?我不知道您想对url做什么。我已经用一个示例更新了答案,以便稍后从url检索资产,以防您需要它。