【发布时间】:2015-04-20 11:03:38
【问题描述】:
更新到 10.10.3 后,WebView 组件在dealloc之后开始崩溃
- (void)dealloc {
[self.webView.windowScriptObject setValue:nil forKey:@"CocoaApp"];
[[self.webView mainFrame] stopLoading];
[self.webView setUIDelegate:nil];
[self.webView setEditingDelegate:nil];
[self.webView setFrameLoadDelegate:nil];
[self.webView setPolicyDelegate:nil];
[self.webView removeFromSuperview];
}
崩溃发生在 WebView 的深处
EXC_BAD_ACCESS
1 0x7fff910bae9e WebDocumentLoaderMac::detachFromFrame()
2 0x7fff920288c0 WebCore::FrameLoader::detachFromParent()
3 0x7fff910d0e55 -[WebView(WebPrivate) _close]
4 0x7fff910d0c49 -[WebView dealloc]
5 0x7fff8b1cf89c objc_object::sidetable_release(bool)
6 0x7fff8b1b5e8f (anonymous namespace)::AutoreleasePoolPage::pop(void*)
7 0x7fff912b26f2 _CFAutoreleasePoolPop
8 0x7fff8830e762 -[NSAutoreleasePool drain]
9 0x7fff8e3f0cc1 -[NSApplication run]
10 0x7fff8e36d354 NSApplicationMain
11 0x1000ebb12 main
12 0x7fff8c81e5c9 start
13 0x3
有什么想法吗?这是苹果的错误吗?它在 10.10.3 之后开始?
启用 NSZombie 时不会崩溃!
【问题讨论】:
-
通常如果你启用 NSZombie,它应该告诉你哪个对象在被释放后会收到消息。你能检查一下那是哪个物体吗?
-
不,因为启用 NSZombie 时不会发生崩溃或任何其他问题 :( 它发生在 webview 组件的深处
-
您是否设置了任何其他代表而不是取消他们? developer.apple.com/library/mac/documentation/Cocoa/Reference/… 几周前我遇到了这个问题,结果我忘了取消其中一位代表
-
不,所有代表都被淘汰了...问题始于 10.10.3
-
在使用 JS 桥接器时,我在 swift 应用程序上遇到了类似的问题。打开与 Apple 的错误报告导致
Duplicate of 13811738 (Open)编辑:问题接缝随机发生
标签: objective-c macos cocoa webview