Метаданные для изображения из библиотеки - PullRequest
5 голосов
/ 03 декабря 2010

Мне нужно получить метаданные изображения из библиотеки.Я использую код

- (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 Ответ

2 голосов
/ 03 декабря 2010

Кажется, что-то не так с кодом, который вы разместили.Я попробовал это в симуляторе и на устройстве, и это работает.Документация Apple по методу metadata гласит:

Возвращает ноль, если представление такое, которое система не может интерпретировать.

Так что это, скорее всего, означает, что изображение, которое выВы выбрали либо не имеет метаданных, либо изображение в форме, которую библиотека не может распознать.

Вы не определили metadataDict в своем методе, так что если вы хотите использовать внезаблокировать вы должны сохранить его.

metadataDict = [[representation metadata] retain];

Возможно, вам придется объявить его также с идентификатором __block.

__block NSDictionary *metaDataDict;
...