4

iOS 5 および iOS 6 との互換性が必要なアプリを考えてみましょう。

純粋に iOS 5 との互換性のためにそこにあるコードをマークして、最終的に展開ターゲットが iOS 6 に変更されたときにコンパイル エラー (または警告) として表示されるようにする方法はありますか?

このようなもの:

#IF_DEPLOYMENT_TARGET_BIGGER_THAN_IOS_5 
#OUTPUT_ERROR_MESSAGE
#ENDIF
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES;
}

そうでない場合、最良の代替手段は何ですか?

4

3 に答える 3

3

これを試して:

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
#warning This pre-6.0 code isn't needed anymore
#endif
- (BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)toInterfaceOrientation {
    return YES;
}

Deployment Target が 6.0 以降に設定されると、このコードによってコンパイラの警告が発生します。

于 2012-12-18T17:47:36.323 に答える
1

#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE __deprecated

すべてのメソッドで使用しますが、必要になるまで静かにします

#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE

于 2012-12-18T17:47:27.977 に答える
0

Apple がそのようなものをフレームワーク クラスでどのようにマークしているかを検討してください。SDKのAvailability.hとクラスを利用しているようです。AvailabilityInternal.h

于 2012-12-18T17:46:35.000 に答える