2011-12-10 12 views
6

例:Xcode4で条件付きコンパイルブロックで構文強調表示が行われないのはなぜですか?

#ifdef FREE_VERSION 
    tf.text = @"Free"; 
    NSLog(@"FREE VERSION"); 
#else 
    tf.text = @"Paid"; 
    NSLog(@"PAID VERSION"); 
#endif 

最初の部分は、Xcodeで正常に見えます。

tf.text = @"Free"; 
    NSLog(@"FREE VERSION"); 

は構文強調表示されています。ただし、2番目の部分はありません。

tf.text = @ "有料";

NSLog(@ "PAID VERSION");

「条件付きクンチコードの一部に構文ハイライトを行わない」のような設定はありますか?

答えて

9

XCodeは、どのプリプロセッサ分岐を実行するかを決定します。実行が予想されるブランチには構文の強調表示があり、もう一方は表示されません。

3

XCodeやVisual Studioを含むほとんどのIDEでは、多くの場合、強調表示が適用されず、強調表示が間違ってしまうため、条件付きブロックのコードはハイライト表示されません。複数のプラットフォームで動作するコードでは、

#ifdef __APPLE__ 
// Do something that uses apple-only headers/functions 
#endif 
#ifdef _MSVC_VER 
// Do something that visual studio recognizes 
#endif 

などの使用を検討してください。 Visual Studioでは、Appleの関数名を強調する方法はわかりません.XCodeはVisual Studioのプラグマなどについて何をすべきか分かりません。

関連する問題