ios - 我正在使用远远超出预期范围的组件值创建 [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
]
而且——还是一样!我已经重新启动,删除了应用程序并清理了构建文件夹,一切看起来都一样。有没有想过要把我的注意力放在哪里?谢谢!
解决方案
不确定这是一个很好的答案,但它并不适合评论,所以......
我抓住了您链接到的“ 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 的作者提出问题?
推荐阅读
- php - 如何选择多个表中的数据并按天查看?
- php - 如何动态绑定 SQL 参数?
- excel - 从忽略空白单元格的 Excel 工作表在 Outlook 中创建提醒
- api-key - Kong API 密钥策略
- c# - 我无法从 C# 连接到特定的 SQL Server 2008 数据库服务器
- r - 具有至少 n (>1) 个非缺失值的向量的平均值,R
- mongodb - 'mongo' 正在工作,但 'mongod' 在 CMD 中不起作用
- r - 如何在 1 个图中使用 CI 绘制 2 个均线图
- django - Django Model 的值为 NoneType 为什么?
- vue.js - 为什么我的道具没有被动态绑定?