我试图直接读取资产URL的内容而不先写入沙箱。如果我写入沙箱,我可以使用
阅读内容 NSFileHandle *readFile = [NSFileHandle fileHandleForReadingFromURL:file error:nil];
但我无法使用相同的方法读取资产网址。虽然这是正确的行为,因为我认为NSFileHandle适用于用户沙箱中存在的项目。我想知道是否有办法从资产URL中读取。
答案 0 :(得分:1)
ALAsset URL不是文件URL,因此正确的读取方式是
ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib assetForURL:myAssetURL resultBlock:^(ALAsset *asset) {
/* Example use. Check out the docs on ALAsset for more:
UIImage *exampleImage = [UIImage imageWithCGImage:asset.defaultRepresentation.fullResolutionImage];
*/
} failureBlock:^(NSError *error) {
NSLog(@"Failed to get asset at %@: %@",myAssetURL, error);
}];
重要提示:确保在使用ALAsset
时保持ALAssetsLibrary处于活动状态