升级到 Xcode 11.x 后出现 UISegmentedControl 错误

Posted

技术标签:

【中文标题】升级到 Xcode 11.x 后出现 UISegmentedControl 错误【英文标题】:UISegmentedControl error after upgrading to Xcode 11.x 【发布时间】:2019-10-17 05:51:29 【问题描述】:

安装Xcode 11后,在ios 12移动设备上测试时,一直出现以下错误。 它总是使应用程序崩溃。

*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因:'[ setValue:forUndefinedKey:]: 此类与键 selectedSegmentTintColor 的键值编码不兼容。'

在 iOS 13 上,它不会崩溃。

【问题讨论】:

【参考方案1】:

这个错误是由于在 xib 文件中设置 Selected Tint 颜色引起的。当它设置为预定义的颜色(在Colors.xcassets)时,会导致运行时出现上述错误并导致应用崩溃。

要处理可行的色调,必须以编程方式完成。

if #available(iOS 13.0, *) 
    unitSegment.selectedSegmentTintColor = UIColor(named: "Primary")!
 else 
    unitSegment.tintColor = UIColor(named: "Primary")!

截至目前,崩溃错误出现在 Xcode 11.0 和 Xcode 11.1 上。 Apple 应该在 Xcode 和 Swift 5.1 上默认处理这个问题,或者至少在选择 xib 文件的预定义颜色时提示错误,尤其是当我的目标设置为 12.0 时。

【讨论】:

以上是关于升级到 Xcode 11.x 后出现 UISegmentedControl 错误的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Xcode 4 后出现缺少文件警告

将Xcode 8升级到XCode 9后出现AvCapture错误

xcodebuild:使用升级到 XCode 8.1 后出现“需要代码签名”错误

使用 setDataSource 升级到 Xcode 4.6 后出现编译器错误

animateWithDuration 在升级到 xcode 4.6 后导致 ios4 上的触摸事件出现问题

升级到 Xcode 8 后出现 GCC 5.4 链接器错误