gpt4 book ai didi

ios - 发布 WKNavigationAction 子类在 iOS 15 上崩溃

转载 作者:行者123 更新时间:2023-12-03 08:14:55 27 4
gpt4 key购买 nike

对于单元测试,我已对 WKNavigationAction 进行了子类化。这是一种常见的做法,也可以在互联网和大型 SDK 中找到。

在 iOS 15 上释放它的实例会导致 WebKit 内部崩溃。

堆栈跟踪:

Thread 1 Queue : com.apple.main-thread (serial)
#0 0x0000000130d8b702 in WTF::RunLoop::dispatch(WTF::Function<void ()>&&) ()
#1 0x0000000134ed41e4 in WebCoreObjCScheduleDeallocateOnMainRunLoop(objc_class*, objc_object*) ()
#2 0x000000011290711d in -[WKNavigationAction dealloc] ()
#3 0x000000010cf2f9f7 in objc_object::sidetable_release(bool, bool) ()

Playground 示例:

import WebKit

class MockNavigationAction: WKNavigationAction {}

var navigationAction: WKNavigationAction? = MockNavigationAction()

navigationAction = nil

非常感谢有关如何解决此问题的建议。

最佳答案

似乎是一个 WebKit bug,您需要启动框架,否则释放失败。

有时只需在应用程序/测试启动期间创建一个虚拟 Web View 即可:

_ = WKWebView()

此解决方法将修复崩溃,因为创建 WKWebView 将启动 WebKit 引擎,并且可能会初始化导致崩溃的值。

理论上,您不需要上面的代码,因为无论如何您都必须将 WKWebView 实例传递给委托(delegate)方法。

关于ios - 发布 WKNavigationAction 子类在 iOS 15 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69736487/

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