ios - 运算符“已定义”需要标识符ios

标签 ios iphone

如果isConsoleLogActive为YES,我在项目dlog中的代码下面应在控制台中打印值。

它给出错误,如运算符“已定义”需要标识符

#if defined ([Util isConsoleLogActive])// Operator 'defined' requires an identifier in this line
#define DLog(...) NSLog(__VA_ARGS__)
#define DTrace() NSLog(@"%s", __PRETTY_FUNCTION__)
#else
#define DLog(...) /* */
#define DTrace() /* */
#endif

如果我在.m中使用相同的代码([Util isConsoleLogActive]),则效果很好。我只在#define中遇到这个问题

可能是什么问题。请给我一些想法。

最佳答案

#开头的各种命令是预处理器指令。这些将在构建时,应用程序实际执行之前的编译阶段之前执行。您应该使用预处理程序指令根据构建配置在应用程序中有条件地包含其他代码。但是,预处理器是在运行时处理特定平台上的条件执行的错误方法。为此,您需要标准的“if ... else”逻辑。

如果使用该语句的目标是确定给定的选择器是否存在,请尝试使用respondsToSelector

关于ios - 运算符“已定义”需要标识符ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23468369/

相关文章:

ios - 音量 slider 没有效果

iphone - Core Animation (CABasicAnimation) 的不可预测行为

ios - 如何解决 Caffe IOS 中的未知层类型。?

iOS 应用程序不会填满 iPhone 屏幕

ios - 使用 Storyboard时需要以编程方式调整 subview 的大小?

ios - iOS 中视频文件和视频 "description"文件的存储文件夹 - Apple 指南

ios - 如何停止 unity ARKIT session ?

连接丢失后 iOS AVPlayer 缓慢重新缓冲

iphone - 导航时 iPhone OpenGL 应用程序随机崩溃

ios - iOS 应用程序如何接收 SAML 身份验证响应?