過去に、次のプリプロセッサ コードを使用して、さまざまな iOS バージョンのコードを条件付きで実行しました。
#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
// target is iOS
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
// target is lower than iOS 6.0
#else
// target is at least iOS 6.0
#endif
#endif
ただし、iOS 7 では次の問題があります。
#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
// target is iOS
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 70000
// target is lower than iOS 7.0
NSLog(@"This message should only appear if iOS version is 6.x or lower");
#else
// target is at least iOS 7.0
#endif
#endif
上記のNSLog
メッセージは、iOS 7 のコンソールに表示されます。何か問題がありますか?
編集: iOS 7 (シミュレーターとデバイス) で実行される次のコード
NSLog(@"Version %i", __IPHONE_OS_VERSION_MIN_REQUIRED);
与える:バージョン60000