我需要从库中获取图像的元数据。我正在使用代码
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL resultBlock:^(ALAsset *asset) {
ALAssetRepresentation *representation = [asset defaultRepresentation];
metadataDict = [representation metadata];
NSLog(@"%@",metadataDict);
} failureBlock:^(NSError *error) {
NSLog(@"%@",[error description]);
}];
[library release];
}
我正在使用IOS 4.2 但我没有得到元数据。任何人都可以帮我这个吗?
答案 0 :(得分:2)
您发布的代码似乎没有任何问题。我已经在模拟器和设备上尝试了它,它的工作原理。 Apple的metadata
方法文档说明:
如果表示是系统无法解释的表示,则返回nil。
所以这很可能意味着您选择的图像要么没有任何元数据,要么图像是图书馆无法识别的形式。
您尚未在方法中定义metadataDict
,因此如果您想在块外使用,则必须保留它。
metadataDict = [[representation metadata] retain];
您可能还必须使用__block
标识符声明它。
__block NSDictionary *metaDataDict;