2013-09-23 52 views
0

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

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

阅读的内容,但我无法读取使用相同的方法的资产URL。虽然这是正确的行为,因为我认为NSFileHandle是用于存在于用户沙盒中的项目。我想知道是否有办法从资源URL中读取数据。

+1

如果你有一个资产URL你应该将其与资产库一起使用... – Wain

回答

1

ALAsset网址不是文件的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); 
}]; 

重要提示:请务必保持ALAssetsLibrary活着,而你使用ALAsset