2017-09-04 6 views
1

私は現在、Xcode 9でコンパイルするコードをいくつか変換していますが、Xcode 9とXcode 8の両方でいくつかのコードを使用するいくつかの異なる動作を見つけました。 ある種のifdefがありますか?リダイレクトコードは、使用されているXcodeバージョンに基づいていますか?ifdef?

助けてください。 ありがとう!

+0

を確認するには?より良いことは、(a)どのバージョンのSwiftをビルドしているか、(b)どのOSバージョンを実行しているかのいずれかです。 – dfd

答えて

3

Xcodeのバージョン管理用の条件付きコンパイルプリプロセッサマクロはありません。現在、これはあなたができる最善である:

#if swift(>=3.2) 
    // Xcode 9 
#else 
    // Xcode 8 
#endif 

スウィフト3.2のみXcodeの9以上を経由して提供されていますので、これはあなたの実用的なニーズに応える必要があります。

Xcode関連のバグを発見した場合は、アップルのBug ReporterのWebサイトhereにお寄せください。

+0

確かに、Xcode 8の最新のSwiftバージョンは3です。これは有効なチェックです –

0

Xcodeのバージョンではなく、Xcodeに含まれるSDKを検証する必要があります。たとえば、Xcode8にはiOS 10.3 SDKが含まれています。しかし、Xcode9にはiOS 11 SDKが含まれています。 enter image description here

Xcodeのバージョンで動作なぜSDKの使用溶液from answer

関連する問題