gpt4 book ai didi

iOS 11 及更高版本崩溃 -[UIView setDrawsWithVibrantLightMode :]: unrecognized selector sent to instance

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:39 25 4
gpt4 key购买 nike

我注意到 iOS 11 及更高版本上的应用程序崩溃显着增加并出现此消息。这似乎是 UIKit 正在调用的内部 API,堆栈跟踪显示它在 UITableViewCell 中:

    Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setDrawsWithVibrantLightMode:]: unrecognized selector sent to instance 0x15defa6d0'

Last Exception Backtrace:
0 CoreFoundation 0x0000000181691d04 __exceptionPreprocess + 124
1 libobjc.A.dylib 0x00000001808e0528 objc_exception_throw + 52
2 CoreFoundation 0x000000018169f1c8 -[NSObject(NSObject) doesNotRecognizeSelector:] + 136
3 UIKit 0x000000018ae8711c -[UIResponder doesNotRecognizeSelector:] + 292
4 CoreFoundation 0x00000001816976b0 ___forwarding___ + 1376
5 CoreFoundation 0x000000018157d01c _CF_forwarding_prep_0 + 88
6 UIKit 0x000000018b022d58 -[UITableViewCell _setSeparatorDrawsInVibrantLightMode:] + 216
7 UIKit 0x000000018abf5ef0 -[UITableViewCell setSeparatorColor:] + 340
8 UIKit 0x000000018abf451c __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 1228
9 UIKit 0x000000018aad6e34 +[UIView(Animation) performWithoutAnimation:] + 100
10 UIKit 0x000000018abf3f64 -[UITableView _configureCellForDisplay:forIndexPath:] + 268
11 UIKit 0x000000018ae03a00 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 844
12 UIKit 0x000000018ae03eac -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 76
13 UIKit 0x000000018ade39f0 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2136
14 UIKit 0x000000018ab99508 -[UITableView layoutSubviews] + 136

我一直无法重现此问题,但它在许多用户设备上持续崩溃,并且设备或操作系统版本之间没有共同线程,除非它只发生在 iOS 11 及更高版本上。

最佳答案

最终发现这是在辅助功能设置下启用Darken Colors 设置时 UIKit 中的错误:

设置 -> 常规 -> 辅助功能 -> 增加对比度 -> 加深颜色

如果您遇到此崩溃,请尝试打开/关闭该设置以重现它。

现在我们通过简单地将此方法实现为扩展中的 Void 函数来抑制这种情况:

@available(iOS 11.0, *)
extension UITableViewCell {
func _setSeparatorDrawsInVibrantLightMode(_ value: Bool) {

}
}

所以 UIKit 可以调用它,但它什么都不做(并且不会使应用程序崩溃)。

关于iOS 11 及更高版本崩溃 -[UIView setDrawsWithVibrantLightMode :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47353254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com