본문 바로가기

개발/App Developer

앱에서 카메라 사용시 프레임웤 관련


출처 : 맥부기 네이버 카페

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

--------------------------------------------------

- (IBAction)getCameraPicture:(id)sender {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES;

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

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

[self presentModalViewController:picker animated:YES];

[picker release];

}

--------------------------------------------------
위 소스는 오픈 소스나, 레퍼러나 책에서 많이 나오는 형식인데요.
저는 버튼 누르면 실행하라고 할려고 IBAction 으로 만들었습니다.
대충 설명하자면 UIImagePickerController 에 변수 할당을 하고
거기에 각 속성값을 지정을 해 준거데
동영상을 찍기 위해서는 sourceType 과 mediaTypes 를 위 코드 같이 설정을 해 주어야 하는 것이죠.

근데 요것이 위 코드대로 하면 바로 에러가 뜹니다.
picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
이 부분에서 kUTTypeMovie 요것 때문에 에랴가 뜹니다.

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

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

#import <MobileCoreServices/UTCoreTypes.h>


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

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

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

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

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


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

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

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

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

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

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


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

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


'개발 > App Developer' 카테고리의 다른 글

코어 데이터 Core Data  (0) 2010.11.12
* 놈에 대한 참고 하나더  (0) 2010.11.12
맥부기펌] 9/2 트위터 인증변경관련  (0) 2010.10.06
sqlite 공부시 도움 블로그  (0) 2010.10.04
테이블 스페이스 용량 보기  (0) 2010.09.13