0

我正在尝试直接读取资产 URL 的内容,而无需先写入沙箱。如果我写入沙箱,我可以使用

 NSFileHandle *readFile = [NSFileHandle fileHandleForReadingFromURL:file error:nil];

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

4

1 回答 1

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

于 2013-09-23T23:27:05.183 回答