来自库的图像的元数据

时间:2010-12-03 09:59:20

标签: iphone metadata uiimagepickercontroller

我需要从库中获取图像的元数据。我正在使用代码

- (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 但我没有得到元数据。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

您发布的代码似乎没有任何问题。我已经在模拟器和设备上尝试了它,它的工作原理。 Apple的metadata方法文档说明:

  

如果表示是系统无法解释的表示,则返回nil。

所以这很可能意味着您选择的图像要么没有任何元数据,要么图像是图书馆无法识别的形式。

您尚未在方法中定义metadataDict,因此如果您想在块外使用,则必须保留它。

metadataDict = [[representation metadata] retain];

您可能还必须使用__block标识符声明它。

__block NSDictionary *metaDataDict;