2011-07-05 4 views
1

私はiPhone開発には初めてです。私はiOS4.2 SDKを使ってプロジェクトを開発し始めました。 iOS4.2デバイスとシミュレータの両方で正しく動作します。後で、私のアプリがiOS3.1.3のデバイスで動作していないことに気付きました。これを解決するため、私のアプリケーションの設定ファイルの "Deployment Target"を "3.1.3"に更新しました。iOS3.1.3で動作するiOS4.2 SDK開発コードを取得するには?

私が抱えている問題は、いくつかのクラスでUITapGestureRecognizerを使用していることです。

エラー:「UITapGestureRecognizer」宣言されていない(最初にこの関数で使用)

エラー:最初の使用(宣言されていない「タップ」のiOS 3.1.3 SDKを使用して私のコードをコンパイルするには、私は次のエラーを取得します私は準備ができて持っているものから、この機能)

が、これは私がUITapGestureRecognizerを使用どこ私は、以下の変更を行ったので、これを実行するには、iOS搭載.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フレームワークを「弱く」に設定しました。 ベース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)を最小バージョンに設定します。

関連する問題