2012-10-28 2 views
2

나는 아이폰 카메라에서 이미지를 저장하고 있습니다를 얻고 난 대리자 메서드를 관리하는 방법 : 내가 알 필요가 여기UIImagePickerControllerReferenceURL 카메라

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

을 :

[info objectForKey:UIImagePickerControllerReferenceURL] 

를하지만 항상 경우 nil을 카메라 롤에서 그림을로드하지 않는 것과는 달리 사진을 찍었습니다. 왜 그럴까요?

답변

9

비디오를 캡처하면 미디어가 장치의 저장소에 저장되고 해당 URL에 액세스 할 수 있습니다. 이미지를 캡처하면 미디어가 장치의 메모리에 저장되고 원시 데이터에 액세스 할 수 있습니다.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    NSLog(@"%@", info); 

    // An image 
    if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.image"]) 
     UIImage *image=info[UIImagePickerControllerOriginalImage]; 

    // A video 
    else 
     NSURL *url=info[UIImagePickerControllerMediaURL]]; 
} 

편집 : 이미지의 URL이 nil 인 이유를 묻습니다. 보시다시피 캡처 한 이미지는 절대로 장치의 저장 공간에 저장되지 않습니다. 메모리에 그림을 저장하는 한 가지 이점은 장치에 저장하거나 네트워크를 통해 전송하기 전에 처리 할 수 ​​있다는 것입니다.

관련 문제