Swift 言語での #ifdef の置き換え 質問する

Swift 言語での #ifdef の置き換え 質問する

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動作します。コンパイラが特定の値を持つフラグを無視しているようです。

おすすめ記事