直接从资产URL中读取

时间:2013-09-23 21:52:18

标签: iphone ios ios6 alassetslibrary nsfilehandle

我试图直接读取资产URL的内容而不先写入沙箱。如果我写入沙箱,我可以使用

阅读内容
 NSFileHandle *readFile = [NSFileHandle fileHandleForReadingFromURL:file error:nil];

但我无法使用相同的方法读取资产网址。虽然这是正确的行为,因为我认为NSFileHandle适用于用户沙箱中存在的项目。我想知道是否有办法从资产URL中读取。

1 个答案:

答案 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处于活动状态