iOS 10 上的 UIColor 缺少蓝色值

UIColor missing blue value on iOS 10

我的 iOS 应用程序创建了一种浅蓝色用作 table 单元格的背景,如下所示:

UIColor *bgColor = [UIColor colorWithRed:0/0.0 green:115/255.0 blue:140/255.0 alpha:1.0];

自 iOS10 发布以来,有两个用户发送了屏幕截图,显示此颜色呈现为粉红色。我在 Photoshop 中进行了比较,发现如果将蓝色值更改为 0,粉红色就是我使用上面的 RGB 值得到的颜色。因此,当我创建颜色时,蓝色值似乎以某种方式丢失了。应用程序中的任何其他颜色似乎都不会发生这种情况,我比较了代码并以相同的方式创建了其他颜色。

出现问题的设备是 iPhone 6s 和 iPhone SE,都比我最新的设备新。我的 iPhone 6 或 iPad Air 2 没有出现此问题。

奇怪的是,我曾经偶尔在Xcode 7 和更早版本的iOS 模拟器中看到这种情况,但我忽略了它,因为它似乎是模拟器的一个问题。现在它不会在 Xcode 8 模拟器中发生,但这是我第一次知道它曾经发生在真实设备上。

我看到 iOS 10 中的 colorWithRed:green:blue:alpha: 方法和一般的显色性进行了一些更改,但我的值并未超出范围。我会向 Apple 报告错误,但与此同时有人可以对此提出解释吗?

我认为问题出在 iOS 10 SDK1 中引入的扩展颜色 space,即颜色分量值不再限制在范围 [0 ,1]. 0/0.0 的红色分量是无穷大或 NaN,而不是预期的 0/255.0.