ios - 升级到 Xcode 11.x 后出现 UISegmentedControl 错误
问题描述
安装 Xcode 11 后,在 iOS 12 移动设备上测试时,一直出现以下错误。它总是使应用程序崩溃。
*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[<UISegmentedControl 0x107c7ec90> setValue:forUndefinedKey:]:此类与键 selectedSegmentTintColor 的键值编码不兼容。”
在 iOS 13 上,它不会崩溃。
解决方案
此错误是由于Selected Tint
从 xib 文件设置颜色引起的。当它设置为预定义的颜色(in 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 时。
推荐阅读
- typescript - 打字稿:从对象分配成员
- python - 作为服务运行时可用的 Pystray 图标
- mysql - MySql 查询年度/月度报告
- c# - 为什么更新 OLEDB 查询不执行任何操作?
- javascript - 如何阻止我的函数修改传入的值?
- kubernetes - 自动下载 Kubernetes 的镜像
- reactjs - 反应本机选项卡视图,按切换选项卡不起作用
- javascript - 在哪里执行方法以在 nuxt-i18n 中持久更改语言环境?
- sql-server - Microsoft SQL Server DB 用户 ID 是否区分大小写?
- vue.js - 如何在 Vue.js 中使用 axios 进行 API 调用?