2010-01-13 4 views
3

3.0 기능 (미디어 선택 도구)을 응용 프로그램에 추가하라는 메시지가 표시되었습니다.2.2.1 장치에서 3.0 기능이있는 iPhone 응용 프로그램 실행

하지만 앱은 2.2.1 기기에서 계속 실행되어야합니다. (기능이 비활성화 된 상태에서)

2.2.1에서 컴파일러 오류가 발생하지 않고 3.0 기능을 포함하도록 컴파일하는 방법은 무엇입니까?

MailComposer 예제의 지침에 따라 대상 설정을 2.2.1로, 기본 SDK를 3.1.2로 설정했습니다.

약한 링크를 살펴 봤지만 링커 단계에만 해당되며 컴파일러 오류는 없습니다.

답변

3

컴파일러 오류를 해결하려면 C 함수를 extern으로 선언하면됩니다 (Objective-C 함수는 경고를 생성하지만 컴파일러 오류는 발생하지 않음). 링커 오류는 약화 된 링크로 해결할 수 있습니다.

+0

그래도 그런 식으로 선언 할 수 있습니까? MPMediaPickerController에 대한 포인터를 사용해야하는 경우? –

+0

사용되는 모든 클래스에 대해 전달 선언을 수행해야합니다. 'MPMediaPickerController'의 경우, 당신은'@class MPMediaPickerController;'를 할 것입니다. – Mike

0

내가 일반적으로하는 일은 3.0 SDK부터 내 프로젝트에 관심있는 방법으로 필요한 클래스의 정의를 복사 한 다음 아무 것도 발생하지 않은 것처럼 해당 메서드를 호출하는 것입니다. 까다로운 부분은 인스턴스화입니다. 다음을 사용하십시오.

MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init]; 
관련 문제