【发布时间】:2014-10-31 14:40:51
【问题描述】:
我有几个这样的定义:
#define flag YES
#define prod YES
#define test NO
这些用于测试。
我有一段代码
BOOL testMode = flag || prod || test;
Xcode 抱怨此消息:使用逻辑 ||使用常量操作数...使用按位修复它
但我正在做的操作是合乎逻辑的,不是按位的。
如果 3 个状态之一为 YES,我希望 testMode 为 YES。
有什么线索吗?
【问题讨论】:
-
它认为你做错了什么,想要“帮助”你。
-
这是一个令人惊讶的警告。我无法通过将您的代码粘贴到源文件中来重现。
-
@danh 是的,我使用了相同的代码并且没有收到任何警告..
-
我能够重现它...似乎您可以将代码替换为
BOOL testMode = flag | prod | test;并在没有警告的情况下获得相同的结果。这可能是更困扰您的问题...不必要的警告或使用按位|运算符进行本质上的逻辑运算。 -
它似乎旨在捕捉人们错误地使用带有位字段的逻辑运算符。当您尝试设置位 2 时,您不希望意外写入
bitField || 0x4。
标签: ios xcode cocoa cocoa-touch