示例:
#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部分中进行语法突出显示”的设置?
答案 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等。