私は現在、Xcode 9でコンパイルするコードをいくつか変換していますが、Xcode 9とXcode 8の両方でいくつかのコードを使用するいくつかの異なる動作を見つけました。 ある種のifdefがありますか?リダイレクトコードは、使用されているXcodeバージョンに基づいていますか?ifdef?
助けてください。 ありがとう!
私は現在、Xcode 9でコンパイルするコードをいくつか変換していますが、Xcode 9とXcode 8の両方でいくつかのコードを使用するいくつかの異なる動作を見つけました。 ある種のifdefがありますか?リダイレクトコードは、使用されているXcodeバージョンに基づいていますか?ifdef?
助けてください。 ありがとう!
Xcodeのバージョン管理用の条件付きコンパイルプリプロセッサマクロはありません。現在、これはあなたができる最善である:
#if swift(>=3.2)
// Xcode 9
#else
// Xcode 8
#endif
スウィフト3.2のみXcodeの9以上を経由して提供されていますので、これはあなたの実用的なニーズに応える必要があります。
Xcode関連のバグを発見した場合は、アップルのBug ReporterのWebサイトhereにお寄せください。
確かに、Xcode 8の最新のSwiftバージョンは3です。これは有効なチェックです –
Xcodeのバージョンではなく、Xcodeに含まれるSDKを検証する必要があります。たとえば、Xcode8にはiOS 10.3 SDKが含まれています。しかし、Xcode9にはiOS 11 SDKが含まれています。
Xcodeのバージョンで動作なぜSDKの使用溶液from answer
を確認するには?より良いことは、(a)どのバージョンのSwiftをビルドしているか、(b)どのOSバージョンを実行しているかのいずれかです。 – dfd