我正在使用远远超出预期范围的组件值创建 [Graphics] UIColor。即使我的颜色 (100%) 正确,也会出错
I am having [Graphics] UIColor created with component values far outside the expected range. Error even if my colors is (100%) right
我在 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), ]
当我 运行 应用程序时,我在控制台中收到此消息:
[Graphics] UIColor created with component values far outside the
expected range. Set a breakpoint on
UIColorBreakForOutOfRangeColorComponents to debug. This message will
only be logged once.
我正在按照建议设置断点,它在使用我随机选择的(来自数组的)颜色之一进行初始化时停止,但是颜色看起来正确:
关于这个错误有很多问题,似乎所有这些问题都是因为人们使用像 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
上的示例应用程序
运行 它完全按原样 - 根本没有代码编辑。 运行 一次,一次,一次,然后...第 5 次我收到 "far outside the expected range" 消息。
因此,我注释掉了他们的 UIColor
扩展名并替换为:
let color = UIColor.colors.randomItem()
与:
let color = UIColor.blue
结果当然是 12 蓝色 "bubbles"。
运行 它,运行 它,运行 它,然后...再次收到 "far outside the expected range" 消息。
所以,我认为这与您的 buttonColors
没有任何关系。我的猜测 - SpriteKit 有一些奇怪的内部错误?我没有用 SpriteKit 做过任何实际工作,所以我没有任何其他代码可以尝试复制它。
Google 除了常见的开发错误(使用 241
而不是 241.0 / 255.0
),搜索没有发现任何其他内容。
我也没有在 Magnetic 问题中看到任何提及。
由于它只是一条 "warning" 消息,并且由于您获得了正确的颜色,除非您想就技术支持事件 (TSI) 与 Apple 联系,否则也许就让它过去吧?或者向 Magnetic 的作者提出问题?
我在 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), ]
当我 运行 应用程序时,我在控制台中收到此消息:
[Graphics] UIColor created with component values far outside the expected range. Set a breakpoint on UIColorBreakForOutOfRangeColorComponents to debug. This message will only be logged once.
我正在按照建议设置断点,它在使用我随机选择的(来自数组的)颜色之一进行初始化时停止,但是颜色看起来正确:
关于这个错误有很多问题,似乎所有这些问题都是因为人们使用像 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
运行 它完全按原样 - 根本没有代码编辑。 运行 一次,一次,一次,然后...第 5 次我收到 "far outside the expected range" 消息。
因此,我注释掉了他们的 UIColor
扩展名并替换为:
let color = UIColor.colors.randomItem()
与:
let color = UIColor.blue
结果当然是 12 蓝色 "bubbles"。
运行 它,运行 它,运行 它,然后...再次收到 "far outside the expected range" 消息。
所以,我认为这与您的 buttonColors
没有任何关系。我的猜测 - SpriteKit 有一些奇怪的内部错误?我没有用 SpriteKit 做过任何实际工作,所以我没有任何其他代码可以尝试复制它。
Google 除了常见的开发错误(使用 241
而不是 241.0 / 255.0
),搜索没有发现任何其他内容。
我也没有在 Magnetic 问题中看到任何提及。
由于它只是一条 "warning" 消息,并且由于您获得了正确的颜色,除非您想就技术支持事件 (TSI) 与 Apple 联系,否则也许就让它过去吧?或者向 Magnetic 的作者提出问题?