C/C++/Objective C では、コンパイラ プリプロセッサを使用してマクロを定義できます。さらに、コンパイラ プリプロセッサを使用してコードの一部を含めたり除外したりすることもできます。
#ifdef DEBUG
// Debug-only code
#endif
Swift にも同様の解決策はありますか?
ベストアンサー1
はい、できますよ。
Swiftでは、"#if/#else/#endif"プリプロセッサマクロを引き続き使用できます(ただし、より制約があります)。Appleドキュメント以下に例を示します。
#if DEBUG
let a = 2
#else
let a = 3
#endif
ただし、ここで「DEBUG」シンボルを他の場所に設定する必要があります。「Swift コンパイラ - カスタム フラグ」セクションの「その他の Swift フラグ」行に設定します。エントリに DEBUG シンボルを追加します-D DEBUG
。
通常どおり、デバッグ時またはリリース時に異なる値を設定できます。
実際のコードでテストしたところ、動作します。ただし、プレイグラウンドでは認識されないようです。
私のオリジナルの投稿を読むことができますここ。
重要な注意: -DDEBUG=1
動作しません。-D DEBUG
動作します。コンパイラが特定の値を持つフラグを無視しているようです。