【问题标题】:Objective-C/ALAssetslibrary - How retrieve the correct path of the assetsObjective-C/ALAssetslibrary - 如何检索资产的正确路径
【发布时间】:2013-08-28 13:24:55
【问题描述】:

我已经实现了一个简单的方法来查找设备内图像的路径。实际上我正在使用 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);
    }
  ];
}); 

此时,如果我记录我收到的图像的路径:“assets-library://asset/asset.JPG”,据我所知,这并不是具有确切位置的整个路径的图像。你还好吗?那么,如何获取资产的整个路径呢?

谢谢

【问题讨论】:

    标签: objective-c alassetslibrary


    【解决方案1】:

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

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

    NSURL *url = [asset valueForProperty:ALAssetPropertyAssetURL];
    

    您可以稍后通过使用 ALAssetsLibraryassetForURL 使用 url 从库中检索资产:

    [library assetForURL:self.url resultBlock:^(ALAsset *asset) {
    
        } failureBlock:^(NSError *error) {
    
        }];
    

    【讨论】:

    • 感谢您的帮助。我使用了这段代码:“NSString *path = [asset valueForProperty:ALAssetPropertyAssetURL]”。无法识别“绝对字符串”。用日志返回给我:“assets-library://asset/asset.JPG?id=168BA548-9C81-4B08-B69C-B775E5DD9341&ext=JPG”。这是完整的网址吗?我不知道,我期待的是:“folder1/folder2/anotherFolder/image.jpg”。事实上,我不知道身份证号码是什么意思。有什么想法吗?
    • 这不是实际的文件系统 url,因为您无法获取它,因为沙盒。相反,API 会为您提供具有上述格式的代理 url。
    • 再次感谢。但此时我有一个新问题。在我的情况下如何使用代理 url?
    • 我不知道你想用这个网址做什么。我已经用示例更新了答案,以便稍后从 url 中检索资产,以备不时之需。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 2014-07-04
    • 2016-08-15
    • 1970-01-01
    相关资源
    最近更新 更多