***


iOS開発では、前のブログで説明したように、ifdefまたはifndefを使用して判断することができます.今日私は何気なくまた1つの小さい細部を発見して、総括してみるとプリコンパイルの判断の2つの方式で、特にここでみんなと分かち合います.
(1)第1の方式でifdefを用いる
次のコードに示すように#ifdefを使用することができます.
#define DebugEnable
#ifdef Debug_Enable
    NSLog(@"Debug Enable");
#else
    NSLog(@"Debug Unable");
#endif

デバグを定義したらEnableマクロは、上のコードをコンパイルします.逆に次のコードをコンパイルします.
(2)第2の方式は#if defined(…)を用い,以下のコードで示す
#if defined(__APPLE__)
    NSLog(@"Apple Platform");
#else if defined(__linux__)
    NSLog(@"linux Platform");
#endif

このコードは、ホストが実行しているときに、どのプラットフォームにあるかを判断します.例えば_APPLE__アップルのOS XまたはiOSプラットフォームに表示されます.linux__マクロはlinuxプラットフォームに表示されます.
なぜマクロ判断文を書くのかと聞かれることがあります.私もちょうど納得したばかりで、私の会社のプロジェクトはiOSプラットフォームだけではなくて、linuxプラットフォームでも同期して開発して、底層の使用するフレームワークは2つのプラットフォームですべて使用することができて、しかし2つのプラットフォームのものも完全に同じではありませんて、だから特殊にどの機能がiOSプラットフォームで使用するのか、どの機能がlinuxプラットフォームで使用するのかを説明します.これで_APPLE__および_linux__存在の原因を判断した.