在iOS 11.0-11.2上,UIColor(名为:)始终返回nil
我有一个从自定义调色板返回UIColor的类。我以编程方式调用它,但当我在iOS 11上测试它时,它总是返回一个在iOS 11.0-11.2上,UIColor(名为:)始终返回nil,ios,swift,uiimage,ios11,Ios,Swift,Uiimage,Ios11,我有一个从自定义调色板返回UIColor的类。我以编程方式调用它,但当我在iOS 11上测试它时,它总是返回一个nil结果。。。我在多个设备和操作系统版本11.0、11.0.1、11.2上尝试了这一点,它们都返回nil。但只要我在iOS 12上运行它们,它就会返回正确的颜色 var color: UIColor? { switch self { case .darkIndigo: return UIColor(named: "darkIndigo") case .ligh
nil
结果。。。我在多个设备和操作系统版本11.0、11.0.1、11.2上尝试了这一点,它们都返回nil
。但只要我在iOS 12上运行它们,它就会返回正确的颜色
var color: UIColor? {
switch self {
case .darkIndigo: return UIColor(named: "darkIndigo")
case .lightNavy: return UIColor(named: "lightNavy")
case .cobalt: return UIColor(named: "cobalt")
}
}
我最近更改了应用程序的捆绑ID。。。这让我觉得这与UIImage在使用多个bundle时遇到的类似问题有关。尤其是当我收到错误信息时
警告:无法从以下任何捆绑包解析名为“darkIndigo”的颜色:
但这应该如何解决呢?我是否应该手动删除整个资产目录并重新添加?编辑:
这是Xcode中的一个bug,在新的GM种子2(11A420a)中修复了它
我也遇到了这个问题。我使用的是Xcode 11 beta 6,以及命令行工具11.0 我通过切换到Xcode 10.2.1和命令行工具10.2.1解决了这个问题,再次清洁和构建
我也提到了这个问题,我的应用程序广泛使用了XIB和故事板 我可以通过将Xcode beta 6指向beta 5中的资产编译器(actool)来绕过这个问题,我的机器上仍然有这个编译器。您需要链接到此版本(示例命令:
ln-s/Applications/Xcode-beta5.app/Contents/Developer/usr/bin/actool-actool
,从Beta 6/7路径中)
不确定这是否会导致应用程序提交出现任何问题,但我确认iOS 11上的应用程序看起来还是应该的(浅色)。您是从应用程序还是从框架中使用它?您的主捆绑包中有颜色资源吗?顺便说一句,使用
枚举X:String
可以将代码简单地写为返回UIColor(命名为:rawValue)
。颜色资源在我的主捆绑包中,它正在从我的应用程序中使用……我也遇到了同样的问题。我唯一的区别是,我最近没有更改我的应用程序的捆绑ID。然而,就像你一样,我也从苹果那里得到了一个nil
UIColor。我已经请求苹果在这件事上提供代码级别的支持,所以当我得到回复时,我会将消息通知你@Nick。谢谢!我在Xcode 11 beta 6中也遇到了这种情况。在Xcode 11 beta 7中也遇到了这种情况。在编译资产目录的测试版中一定有问题。在测试版7中也可以看到这一点!由于我们的测试周期已经很晚了,我将在可用性检查中对其进行总结。不幸的是,在GMC出现XCode测试错误之前,我怀疑是否会有修复。在这个线程(以及许多单独的线程)中看到一些关于它的提及:苹果刚刚发布了一个Xcode 11 GM2来解决这个问题。苹果刚刚发布了Xcode 11 GM2来解决这个问题。