아이폰어플개발정보2010. 8. 19. 15:22
아이폰 어플 개발에서 카메라로 동영상 찍을때 kUTTypeMovie 에러 해결법
출처 : http://cafe.naver.com/mcbugi


카메라를 동영상을 찍기 위해서 다음과 같은 코드가 많이 나옵니다.
--------------------------------------------------

- (IBAction)getCameraPicture:(id)sender {

UIImagePickerController *picker = [[UIImagePickerControllerallocinit];

picker.delegate = self;

picker.allowsEditing = YES;

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

picker.mediaTypes = [NSArrayarrayWithObject:(NSString *)kUTTypeMovie];

[selfpresentModalViewController:picker animated:YES];

[picker release];

}

--------------------------------------------------
위 소스는 오픈 소스나, 레퍼러나 책에서 많이 나오는 형식인데요.
저는 버튼 누르면 실행하라고 할려고 IBAction 으로 만들었습니다.
대충 설명하자면 UIImagePickerController 에 변수 할당을 하고
거기에 각 속성값을 지정을 해 준거데
동영상을 찍기 위해서는 sourceType 과 mediaTypes 를 위 코드 같이 설정을 해 주어야 하는 것이죠.
근데 요것이 위 코드대로 하면 바로 에러가 뜹니다.
picker.mediaTypes = [NSArrayarrayWithObject:(NSString *)kUTTypeMovie];
이 부분에서 kUTTypeMovie 요것 때문에 에랴가 뜹니다.

보통 kUTTypeMovie 이 변수는 헤더 파일에서 선언을 해 주어야 하는 건데요.
헤더 파일에 어떻게 선언을 하라는 말이 쉽게 나와 있는데가 거의 없더라고요.
구글링을 통해 어찌어찌해서 알게된 내용이 
kUTTypeMovie 이 변수는 MobileCoreServices.framework 에서 사용되는 거라고 하더군요.

그래서 헤더파일에 다음과 같은 코드를 삽입해 주셔야 합니다.

#import 

그럼 일단 코드상에서는 에러가 없는 것으로 나옵니다.

그런데 이렇게 하게 되면 빌드 상에 에러가 2 개 표시가 됩니다.

이게 사람 미치게 하더군요.

구글검색 전 페이지 다 해보고 레퍼런스 사이트 다 뒤져봐도 해결법이 안 나오더라고요.

그러다가 우연찮게 확인된 사실이 아주 중요한 포인트가 되었죠.

프레임 워크는 프로젝트에서 기본적으로 가지고 있는데

거기에 위에서 사용되는 MobileCoreServices.framework 를 추가를 해 주어야 하는 것이였습니다.

Xcode 에 Groups & Files 보시면 Frameworks 폴더가 보이실 겁니다.

그 폴더를 선택하고 오른쪽 클릭을 하게 되면

Add 가 있고 그 다음에 Existing Frameworks... 메뉴가 있습니다.

여기서 MobileCoreServices.framework 프레임웍을 추가를 해 주어야 모든게 정상적으로 돌아가게 됩니다.

질문도 올려보고 검색도 해 봤지만 제가 지금 정리한 내용은 없더라고요.(외국 유명 아이폰 개발 사이트 포함)

이 내용이 다른 분들에게 큰 도움이 되었으면 합니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=74hans&logNo=109927806
Posted by 오늘마감

댓글을 달아 주세요