UFO*_*UFO 5 xcode cocoa cocoa-touch ios
我有几个这样的定义:
#define flag YES
#define prod YES
#define test NO
Run Code Online (Sandbox Code Playgroud)
这些用于测试。
在一个代码点我有
BOOL testMode = flag || prod || test;
Run Code Online (Sandbox Code Playgroud)
Xcode 抱怨这条消息:use of logical || 使用常量操作数...使用按位修复它
但我正在做的操作是合乎逻辑的,而不是按位。
如果 3 个状态之一为 YES,我希望 testMode 为 YES。
有什么线索吗?
以下代码在没有警告的情况下获得相同的结果。
BOOL testMode = flag | prod | test;
Run Code Online (Sandbox Code Playgroud)
这可能是什么会让你更烦恼的问题......一个不必要的警告或使用按位运算|符进行本质上的逻辑运算。该警告似乎旨在捕捉人们错误地使用带有位字段的逻辑运算符。bitField || 0x4当您尝试设置位 2 时,您不会希望意外写入。
我更喜欢这个:
BOOL testMode = (BOOL)flag || (BOOL)prod || (BOOL)test;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6227 次 |
| 最近记录: |