Swift-由于statusBarWindows而导致应用程序崩溃
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift-由于statusBarWindows而导致应用程序崩溃相关的知识,希望对你有一定的参考价值。
我们刚刚在ios 13上更新了我们的应用,并且应用崩溃了。实际上,我们正在尝试通过statusBarWindow获取窗口对象,但此时应用程序崩溃并在日志部分显示以下错误。
static var sb: UIWindow?
// We use a non-public key here to obtain the `statusBarWindow` window.
// We have been using it in real world app and it won't be rejected by the review team for using this key.
let s = "status", b = "Bar", w = "Window"
return UIApplication.shared.value(forKey: s+b+w) as? UIWindow
由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:'UIApplication上名为-statusBar或-statusBarWindow的应用程序:由于不再有状态栏或状态栏窗口,因此必须更改此代码。请在窗口场景上使用statusBarManager对象。'
它清楚地表明我们不能使用statusBarWindow
,而应该使用statusBarManager
,但是我找不到如何使用statusBarManager
对象
我们面临类似的问题。尽管在iOS 13上已不推荐使用Key Window,但我们还是决定现在使用此解决方案。希望对您有所帮助
if #available(iOS 13.0, *)
let statusBar = UIView(frame:
UIApplication.shared.keyWindow?.windowScene?.statusBarManager?.statusBarFrame
?? CGRect.zero)
statusBar.backgroundColor = UIColor.init(red: 243/250, green: 243/250, blue: 243/250, alpha: 1)
UIApplication.shared.keyWindow?.addSubview(statusBar)
else
UIApplication.shared.statusBarView?.backgroundColor = UIColor.init(red:
243/250, green: 243/250, blue: 243/250, alpha: 1)
以上是关于Swift-由于statusBarWindows而导致应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
iOS 13 statusBarWindow on UIApplication: this code must be changed as there's no longer a status
由于 Swift 缺少 CGFloat 的隐式转换而造成的混乱
Xcode 9 Swift 4由于内存问题而终止(返回一个单元格)
Swift:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:无法识别的选择器发送到实例 0x7fb179f12260'
Swift iOS -CMTimeMakeWithSeconds:警告:由于时间尺度非常低而引入了 -0.433 的错误