iOS4.3からiOS6.xをサポートするアプリを作成しています。しかし、私は無意識のうちに__OSX_AVAILABLE_STARTING(__ MAC_NA、__IPHONE_6_0)とマークされたメソッドを使用しました。これは、セレクターが以前のバージョンのiOSには存在しないことを意味します。
もちろん、iOS 5.xデバイスでコードをテストすると、アプリがクラッシュしました。私は何が起こっているのかを理解し、respondsToSelectorチェックを挿入し、このチェックに失敗した場合はデフォルトで「iOS4.xの方法」で処理を実行します。
将来、これらのバグを防ぐにはどうすればよいですか?適切なiOS機能チェックを追加できるように、iOS-6のみのメソッドにアクセスしていることを確認するコンパイル時の方法はありますか?
セレクターが存在しないため、iOS6デバイスで正常に動作する製品を誤って出荷したくなく、誰かのiOS4.3デバイスで失敗するだけです。