2010-12-03 4 views
5

라이브러리의 이미지 메타 데이터를 가져와야합니다. 나는 어떤 일이 좀 도와 data.Can 코드라이브러리의 이미지 메타 데이터

- (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 을 사용하고 있습니다하지만 메타를 받고 있지 않다을 사용하고?

답변

2

게시 한 코드에 문제가없는 것 같습니다. 나는 그것을 시뮬레이터와 장치에서 시험해 보았다. metadata 메서드에 대한 Apple 설명서의 상태 :

표현이 시스템에서 해석 할 수없는 표현이면 nil을 반환합니다.

이렇게하면 이미지에 선택한 메타 데이터가 없거나 이미지가 라이브러리에서 인식 할 수없는 형식으로되어있을 가능성이 높습니다.

귀하의 방법에 metadataDict을 정의하지 않았으므로 블록 외부에서 사용하려면 블록을 사용해야합니다.

metadataDict = [[representation metadata] retain]; 

아마도 __block 식별자로 선언해야 할 수도 있습니다.

__block NSDictionary *metaDataDict; 
+0

[표현 메타 데이터]와 관련된 문제는 매우 비싸고 많은 메모리를 차지합니다. 사진 라이브러리의 사진을 많이 테스트 할 때 충돌이 발생합니다. – Puran

+0

@ PuranSingh Sing Than이 문제의 해결책은 무엇입니까? 나는 같은 이유로 인해 충돌에 직면하고있다. – sohail059