我的应用程序中有一些用于颜色的内部代码,因此我创建了一个函数,给定颜色,该函数返回代码。我遇到了问题,因为它不起作用,除红色以外,每种颜色都始终返回“ 01”,红色返回正确的代码。有人对此有线索吗?

(NSString *)internalColorCode:(UIColor *)color { 通用标签

}

有帮助吗?

解决方案

问题在于代码中使用的逻辑类型,如(0.949019 <=红色<= 0.949021)。

您需要用((0.949019 <=红色)&&(红色<= 0.949021))替换,以便以预期的方式对表达式进行评估。

因此,所有类型(a <=变量<= b)的条件检查都需要更改为((a <=变量)&&((变量<= b))。

以下是为什么它不起作用的详细说明。

<=的运算符优先级从左到右。因此,表达式的计算方式如下:

  1. 先将“ a”与“变量”进行比较,然后评估结果。

  2. 然后将RESULT(不是“变量”)与“ b”进行比较,并找到最终结果。

    这不是您希望评估的表达式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top