可选类型“UIColor?”的值必须解包为“UIColor”类型的值
使用
self.backgroundColor = .init(named: "my-color")
这里self是一个UIView,触发此错误:
可选类型“UIColor?”的值 必须
使用 '??'展开为类型为 'UIColor' Coalesce的值 当可选值包含“nil”时提供默认值 [Fix]
使用“!”强制解包 如果可选值包含“nil”,则中止执行[修复]
编译器知道该backgroundColor属性是 type UIColor?,所以它应该为初始化程序推断它,对吗?
此外,知道该属性是可选的,错误消息对我来说没有太大意义。
此外,两个自动修复都是“递归的”,这意味着它们不会修复错误,我可以一遍又一遍地应用它们。
注意:我知道我可以使用UIColor.init或简单地使用UIColor. 这只是一个简化的例子。
回答
我认为这个错误没有意义,经过一些研究,我发现它实际上是 Swift 中的一个已知错误。参考在这里。
基本上,编译器似乎试图通过可选项来查找您的初始值设定项。
似乎该修复程序将随下一个版本一起提供。