現在、最新のiOS 4.x SDKに対してアプリケーションがコンパイルされています。 iOS 5.0 SDKがリリースされたら、自分のアプリケーションで新しいiOS 5.0 SDK機能を使用することは可能ですが、iOS 4デバイスでも使用できます(しかし、新機能を使用している部品は無効になっています)。後方互換性を損なうことなくiOS 5機能を使用する
12
A
答えて
10
一般質問に答えるために、Objective-Cのランタイムを使用すると、(respondsToSelector:
経由で)どのメソッドオブジェクトのサポートを照会し、によってクラスのホールドを得ることができることを意味し、完全に反映しています実行時の名前(NSClassFromString
経由)。 iOSバイナリは、フレームワークとの弱いリンケージという概念もサポートしています。つまり、フレームワークが利用可能であれば読み込まれますが、フレームワークが利用できない場合は致命的なエラーとはみなされません。
これは、Appleが新しいバージョンのOSをリリースしたときに、最新バージョンのOSで新機能を使用するコードを書くことができますが、新しい機能がAPIの新しいビットである場合は機能しません。
またAppleは、ClangスタティックアナライザがXcodeに追加されたときなど、新しいAPIではない新しいSDK機能を提供することがあります。これらの機能は通常、ランタイムサポートを必要としないため、完全に使用可能です。アップルがLLVMプロジェクトをコミットすると、ランタイムサポートに依存しているARCの中に新しいコンパイル時の機能がいくつかあることを示唆しているため、iOS 5は少しユニークです。実際にAppleがそれらを配布しようとしているのでツールに入っていれば、彼らは利用できなくなるだろう。
9
一部の機能が実行時に使用可能かどうかを確認できます。例えば
:
Class motionManagerClass = NSClassFromString(@"CMMotionManager");
if(motionManagerClass) {
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
if([motionManager isGyroAvailable]) {
//iOS device with gyro
}else {
//right iOS but device has no gyro
}
}else{
//wrong iOS
}
関連する問題
- 1. 下位互換性を損なうことなくニューススタンドを統合する
- 2. [XmlElement]属性を下位互換性を損なうことなくListメンバーに追加できますか?
- 3. IOS 5とIOS 4の両方でコードを互換性にする方法[iPhone]
- 4. Netty 3.3.xとJava5との互換性が損なわれる
- 5. 未使用のプライベート仮想メソッドはABIとの互換性を損なうことなく将来の拡張を可能にしますか?
- 6. インタフェースビルダーiOS 5の互換性の問題
- 7. iOS 4とiOS 5の下位互換性
- 8. ios5後方互換性
- 9. ビジュアルスタジオの後方互換性
- 10. IExtensibleDataObjectが前方互換性と後方互換性を達成しました
- 11. jQueryUI iOSとのドラッグ&ドロップの互換性
- 12. enum値を追加するとバイナリ互換性が損なわれますか?
- 13. iosのバージョン互換性
- 14. オープンカート拡張機能互換性
- 15. リンクの完全性を損なうことなくPloneコンテンツアイテムを置き換える
- 16. iOS 5のプッシュボタンが機能しない
- 17. 交換を使用すると回転子が機能しなくなる
- 18. iOS 6 APIと下位互換性
- 19. Log4j2の後方互換性の問題
- 20. 互換性のないポインタコンパイラエラー
- 21. iOS 4でシェイク認識が機能しない、iOS 5で機能する
- 22. ネイティブとリレーの互換性、互換性。一緒に働くための公式な方法?
- 23. プレイストアMOTO Eと互換性がないことを示すアプリケーション
- 24. Access VBAでCDate()を使用する互換性のないタイプ
- 25. 最初の使用後にスライダが機能しなくなる
- 26. iOS 5でのスレッドとARCの解除:4.3と互換性のあるコードを作成する方法は?
- 27. アプリの操作性を損なうことなくxcodeをiOS5にアップグレードすることはできますか
- 28. Monoと互換性のある機能言語
- 29. タイプを使用して互換性のない値を分離する方法
- 30. アプリiOS 5との互換性に問題がありますか?
[オプションのiPhone OS 3.0の機能を2.0対応のアプリケーションで使用するにはどうすればよいですか?](http://stackoverflow.com/questions/986589/how-do-you-optionally-use-iphone-os- 3-0-features-in-a-2-0-compatible-app) –
も参照してください[iPhoneアプリを複数のSDK(ファームウェア)バージョンと互換性を持たせる方法(http://stackoverflow.com/questions/3027120/how make-iphone-app-compatible-multiple-sdk-firmware-versions)が含まれています。これらの質問のバージョンは古いものですが、同じ一般原則が適用されます。 –