首页 > 解决方案 > 我正在使用远远超出预期范围的组件值创建 [Graphics] UIColor。即使我的颜色 (100%) 正确也会出错

问题描述

我在 SpriteKit 中有一个使用颜色数组创建的按钮:

let buttonColors : [UIColor] = [
        UIColor(red: 202/255.0, green: 71/255.0, blue: 118/255.0, alpha: 1.0),
        UIColor(red: 107/255.0, green: 107/255.0, blue: 175/255.0, alpha: 1.0),
        UIColor(red: 139/255.0, green: 222/255.0, blue: 213/255.0, alpha: 1.0), ]

当我运行该应用程序时,我在控制台中收到此消息:

[图形] UIColor 使用远远超出预期范围的组件值创建。在 UIColorBreakForOutOfRangeColorComponents 上设置断点进行调试。此消息只会记录一次。

我按照建议设置断点,它在初始化时停止使用我随机选择的一种(从数组中)颜色,但是颜色看起来正确: 这是我的颜色,一切看起来都不错

关于这个错误有很多问题,似乎所有问题都是因为人们使用像 245.0 这样的值而不是 245/255.0 或 0.95。所以想也许我的情况,我在某​​个地方错过了 /255 或者数字混乱,我三重检查了一切,一切似乎都很好。所以我不相信自己,并试图将我的颜色数组更改为:

let buttonColors : [UIColor] = [
        UIColor.green,
        UIColor.red,
        UIColor.blue,
        UIColor.black,
        UIColor.white,
        UIColor.magenta,
        UIColor.cyan,
        UIColor.yellow
        ]

而且——还是一样!我已经重新启动,删除了应用程序并清理了构建文件夹,一切看起来都一样。有没有想过要把我的注意力放在哪里?谢谢!

标签: iosswiftuicolor

解决方案


不确定这是一个很好的答案,但它并不适合评论,所以......

我抓住了您链接到的“ Magnetic ”并在其上运行了示例应用程序Simulator iPhone 7 / 11.3

完全按原样运行它 - 根本没有代码编辑。一次又一次地运行它,然后......第五次我收到“远远超出预期范围”的消息。

所以,我注释掉了他们的UIColor扩展并替换了:

let color = UIColor.colors.randomItem()

和:

let color = UIColor.blue

当然,结果是 12 个蓝色“气泡”。

运行它,运行它,运行它,然后......再次收到“远远超出预期范围”的消息。

所以,我认为这与你的buttonColors. 我的猜测 - SpriteKit 的一些奇怪的内部错误?我没有对 SpriteKit 做过任何实际的工作,所以我没有任何其他代码可以尝试复制它。

241除了通常的开发错误(使用而不是)之外,谷歌搜索没有找到我任何东西241.0 / 255.0

我也没有在磁性问题中看到任何提及。

由于这只是一条“警告”消息,并且您获得了正确的颜色,除非您想与 Apple 联系技术支持事件 (TSI),否则也许就放手吧?或者向 Magnetic 的作者提出问题?


推荐阅读