Objective c 在#else的主体中没有自动完成选项
在我的课程顶部,我定义了一个标志:Objective c 在#else的主体中没有自动完成选项,objective-c,xcode,autocomplete,preprocessor-directive,Objective C,Xcode,Autocomplete,Preprocessor Directive,在我的课程顶部,我定义了一个标志: #define CarsRandom 随后在我的一个方法中,我声明了一个静态int和一个float。然后,我想检查是否定义了CarsRandom,并采取相应的行动: #ifdef CarsRandom //Everything is accesible in this part #else //Even NSLog is not accessible #endif 问题是在#else部分中,在方法开头声明的变量无法通过自动完成访问。虽然我可以成功地
#define CarsRandom
随后在我的一个方法中,我声明了一个静态int
和一个float
。然后,我想检查是否定义了CarsRandom
,并采取相应的行动:
#ifdef CarsRandom
//Everything is accesible in this part
#else
//Even NSLog is not accessible
#endif
问题是在
#else
部分中,在方法开头声明的变量无法通过自动完成访问。虽然我可以成功地构建这个项目,但我想知道为什么在自动完成列表中甚至没有出现NSLog()
。IDE,可能是XCode,正试图变得聪明而失败
它注意到else中的代码片段不会被编译,因此尝试完全忽略它,甚至忽略自动完成
也许您可以将其作为一个普通的if编写,否则在测试和稍后重写时,如果您希望将代码编译出来用于生产的话。您知道您正在使用编译器指令吗?也许一个普通的if语句会更好?当然,我需要做的是,我只需要放一个标志,这样当我只是注释那个指令时,我就会得到一个不同的结果。