我已经实现了一个简单的方法,可以找到设备内部图像的路径。其实我正在使用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”,我所知道的不是具有正确位置的整个路径图像。你还好吗?那么,我如何获得资产的整个路径呢?
由于
答案 0 :(得分:1)
您没有从资产说明中正确检索网址。
考虑使用ALAsset valueForProperty:来简化您的任务。
NSURL *url = [asset valueForProperty:ALAssetPropertyAssetURL];
您可以稍后使用该网址使用ALAssetsLibrary assetForURL从库中检索资产:
[library assetForURL:self.url resultBlock:^(ALAsset *asset) {
} failureBlock:^(NSError *error) {
}];