この質問は単純かもしれません。
したがって、新しいSDKで新しいクラスを使用する場合、アプリは同じOSバージョン番号以上のiPhoneでのみ実行できると想定する必要がありますか?
たとえば、このクラスがiOS 5以降にのみ存在することをドキュメントに記載しているクラスを使用する場合、アプリはiOS 5を搭載したiPhoneでのみ実行できると想定する必要がありますか?
または、iOS 5
クラスドキュメントの用語は、ターゲットのデプロイプラットフォームではなく、SDKのみを指しますか?
展開対象、iOS と SDK は同じ概念ではありませんが、関連しています。メソッドまたはクラスが iOS5 で使用可能であることがわかった場合、それは、それをコンパイルするにはマシンに SDK5 が必要であり、ユーザーがそれを実行するにはデバイスに iOS5 が必要であることを意味します。ただし、その下に配置ターゲット (iOS4 など) を配置し、実行時にコードのその部分を実行しないように注意することができます。
それを行う方法についての詳細な情報はたくさんありますが、簡単に言えば:
メソッドの場合は、メソッドに応答することを呼び出す前に確認してください。[object respondToSelector:@selector(yourNewMethod)]
クラスの場合は、オブジェクトをインスタンス化する前に、そのクラスが存在することを確認してください: NSClassFromString(@"YourNewClass")
. さらに、クラスが古い展開ターゲットに存在しない新しいフレームワークにある場合は、それを「弱い」フレームワークとしてリンクすることを忘れないでください。そうしないと、起動時に失敗します。
もちろん、どちらの場合も、別の応答をユーザーに提供する必要があります。
iOS 5という用語は、デバイス上のオペレーティングシステムを指します。したがって、そのクラスは5以降のデバイスでのみ機能し、非推奨になるまで機能します。