【发布时间】:2014-11-11 16:51:30
【问题描述】:
在运行 iOS 8 时,我开始看到以下异常来自 UIWebView 的内心深处:
[WebActionDisablingCALayerDelegate setBeingRemoved:]:无法识别的选择器发送到实例 0x167ee900
* WebKit 在 webView:willRemoveScrollingLayer:withContentsLayer:forNode:delegate: -[WebActionDisablingCALayerDelegate setBeingRemoved:
中丢弃了一个未捕获的异常
当我更改 UIWebView 上的一些约束然后调用时,就会发生这种情况:
self.webViewWidthConstraints.constant = newWidth;
[self.webView setNeedsLayout];
[self.webView layoutIfNeeded];
(这是为了重新渲染 webview 的内容以正确适应其宽度)。
幸运的是,异常被丢弃了,所以应用程序没有崩溃。为什么会发生这种情况,有什么办法可以防止吗?
【问题讨论】:
-
我在带有 iframe 的 cordova 应用程序中遇到了同样的异常。
-
是的,与科尔多瓦(((
-
这里也一样。不使用科尔多瓦。将简单的 web 视图显示为模态视图并旋转设备会引发此异常(仅限 iOS8,适用于 iOS7)
-
好的,所以我为我解决了问题 - 问题出在 JS 中,计算其中一个文本字段的宽度。
-
我目前正在将此排除规则用于 objc_exception_throw 上的断点,以防止这些异常暂停调试器:!(BOOL)[[$r0 reason] hasPrefix:@"-[WebActionDisablingCALayerDelegate setBeingRemoved:] "]
标签: ios objective-c uiwebview ios8