ALAssetLibrary 可以加载文档文件夹中的图像文件吗?

Can ALAssetLibrary load image file in the Document folder?

ALAssetLibrary 可以非常方便地从相机胶卷或相册中获取图像文件信息。但是,当我尝试使用它来加载文档文件夹(沙盒)中的图像文件时,它总是什么也得不到。这是我的代码:

//Get full file path in the Document folder.(Yes, IMG001.jpg exists in that place)
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* theFileName = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"IMG001.jpg"];
NSURL* theFileURL = [NSURL fileURLWithPath:theFileName];

//Now try to load the asset.
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:theFileURL resultBlock:^(ALAsset *asset) {
    //asset here is always nil.
} failureBlock:^(NSError *error) {
    //it does not run in this place.
}];

谁能告诉我为什么?

传递给 assetForURL 函数的 url 应该是先前从 ALAsset 中检索到的资产 URL 对象。 ALAsset 对象表示由 Photo 应用程序 管理的照片或视频。所以在这种情况下你不能使用 ALAssetLibrary。

要从文档目录获取图像,请使用以下命令:

    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* imageFilePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"IMG001.jpg"];
    UIImage* imageRequired = [UIImage imageWithContentsOfFile: imageFilePath];