2011-07-05 2 views
1

저는 iPhone 개발을 처음 접했습니다. iOS4.2 SDK를 사용하여 프로젝트를 개발하기 시작했습니다. iOS4.2 장치와 시뮬레이터 모두에서 올바르게 작동합니다. 나중에 내 앱이 iOS3.1.3이 설치된 기기에서 작동하지 않는다는 것을 깨달았습니다. 이 문제를 해결하기 위해 앱의 구성 파일에서 "배포 목표"를 "3.1.3"으로 업데이트했습니다.iOS3.1.3에서 작동하는 iOS4.2 SDK 개발 코드를 얻는 방법은 무엇입니까?

내가 가지고있는 문제는 일부 수업에서 UITapGestureRecognizer를 사용한다는 것입니다. 아이폰 OS를 3.1.3 SDK를 사용하여 내 코드를 컴파일에서 나는 다음과 같은 오류를 얻을 :

오류 : 'UITapGestureRecognizer'선언되지 않은 (이 기능에서 처음 사용)

오류 : 선언되지 않은 '탭'(처음에 사용을 내가 UITapGestureRecognizer를 사용하는 곳이 기능),이 아이폰 OS .1.3이 UITapGestureRecognizer을 지원하지 않기 때문에 것으로 보인다 제가 준비에서

, 그래서 이것을 실행하기 나는 다음과 같이 변경했다 :

Class mailClass = (NSClassFromString(@"UITapGestureRecognizer")); 
if(mailClass != nil) 
{ 
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(findOutTheTagmap:)]; 
[imageView addGestureRecognizer:tap]; 
[tap release]; 
} 

또한 대상 설정을 업데이트하고 UIKit Framework를 "약함"으로 설정했습니다. 또한기본 SDK : 3.1.3 컴파일러 버전 : GCC4.2 (GCC4.0도 사용) Mac OS X 배포 대상 : 컴파일러 기본값 (10.4 및 10.6도 사용) iOS 배포 대상 : 3.1.3

그러나 내 코드를 컴파일하려고해도 여전히 동일한 오류가 표시됩니다. 놀라운 것은 며칠 전 누군가가 나를 돕고 있었고 이것이 효과가 있었다는 것입니다.

나는 포럼에서 찾은 거의 모든 것을 시도했다.

진행 방법에 대한 아이디어가있는 사람이 있습니까?

미리 감사드립니다.

답변

2

Base SDK는 응용 프로그램을 컴파일하는 데 사용되는 SDK의 버전입니다. 사용중인 모든 기능이 포함 된 버전으로 설정되어 있는지 확인해야합니다. UIGestureRecognizer에는 3.2 이상이 필요하므로 Base SDK 3.2 이상을 설정해야합니다. 사실, 3.2는 iPad 전용이었습니다. iPhone 용 앱인 경우 Base SDK를 4.0 이상으로 설정해야합니다. 배포 대상에 대한 3.1.3이 정확합니다. 코드에서 3.1.3에서 사용할 수없는 다른 클래스가 없는지 확인하십시오 (문서 확인).

맷 갤러거 (Matt Gallagher)는 위의 기사에서 매우 좋습니다. here. 거기에있는 동안 his whole blog을 읽으십시오. :)

0

다른 SDK를 설정하면 사용할 수없는 것에 대한 어려운 오류를 가져 오는 데 유용 할 수 있지만, 클래스에 따라 불가능하다고보기는 어렵습니다.

대신 항상 최신 SDK를 기반으로 구축해야합니다. (사실 최신 버전의 Xcode는 "최신"설정을 사용해야합니다.) iOS 배포 대상 (IPHONEOS_DEPLOYMENT_TARGET)을 최소 버전으로 설정하십시오.

관련 문제