为什么Xcode4在条件编译块中没有做任何语法高亮?

时间:2011-12-10 23:37:08

标签: objective-c ios xcode xcode4 conditional-compilation

示例:

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

第一部分在Xcode中看起来很好。

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

是语法突出显示的。但是,第二部分不是:

tf.text = @“付费”;

NSLog(@“PAID VERSION”);

是否有类似“不要在条件cimpilation代码的#else部分中进行语法突出显示”的设置?

2 个答案:

答案 0 :(得分:9)

XCode将尝试确定将采用哪个预处理器分支。预期执行的分支将具有语法高亮,而另一个则不具有。

答案 1 :(得分: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 pragma等。