iPhone开发:UIColor / CGColor组件比较
-
28-09-2019 - |
题
我的应用程序中有一些用于颜色的内部代码,因此我创建了一个函数,给定颜色,该函数返回代码。我遇到了问题,因为它不起作用,除红色以外,每种颜色都始终返回“ 01”,红色返回正确的代码。有人对此有线索吗?
(NSString *)internalColorCode:(UIColor *)color { 通用标签
}
解决方案
问题在于代码中使用的逻辑类型,如(0.949019 <=红色<= 0.949021)。
您需要用((0.949019 <=红色)&&(红色<= 0.949021))替换,以便以预期的方式对表达式进行评估。
因此,所有类型(a <=变量<= b)的条件检查都需要更改为((a <=变量)&&((变量<= b))。
以下是为什么它不起作用的详细说明。
<=的运算符优先级从左到右。因此,表达式的计算方式如下:
-
先将“ a”与“变量”进行比较,然后评估结果。
-
然后将RESULT(不是“变量”)与“ b”进行比较,并找到最终结果。
这不是您希望评估的表达式。
不隶属于 StackOverflow