gpt4 book ai didi

ios - WKWebView子类在dealloc上崩溃

转载 作者:行者123 更新时间:2023-12-01 20:14:35 24 4
gpt4 key购买 nike

当我的WKWebView子类(MyWKWebView)dealloc s崩溃时:

2016-05-05 15:40:08.814 MyApp [15559:202920]-[MyViewController
dealloc]:在MyViewController中,dealloc objc [15559]:无法形成弱
引用类MyWKWebView的实例(0x7f9db7f0dbf0)。它是
该对象可能被过度释放,或者正在处理
释放。

我没有对MyWKWebView的弱引用,但MyWKWebView本身对我的UIViewController子类(MyViewController)的引用很弱,该子类拥有MyWKWebView

有什么想法吗?

最佳答案

我没有意识到的一个重要的细节:我的WKWebView子类(MyWKWebView)符合UIScrollViewDelegate。 (我正在尝试使WKWebView API与UIWebView兼容,因此我可以轻松地在iOS7和更高版本之间交换它们。)

这很重要,因为WKWebView已经符合UIScrollViewDelegate,尽管在the header中没有这样说:

#if TARGET_OS_IPHONE
WK_CLASS_AVAILABLE(10_10, 8_0)
@interface WKWebView : UIView
#else

但是,如果您查看 WKWebViewInternal.h header,则会看到一个可疑类别:
@interface WKWebView () WK_WEB_VIEW_PROTOCOLS

如果我们进一步查看文件,我们会发现 WK_WEB_VIEW_PROTOCOLS在iOS上是 <UIScrollViewDelegate>:
#if PLATFORM(IOS)
#define WK_WEB_VIEW_PROTOCOLS <UIScrollViewDelegate>
#endif

我找不到任何地方会明显导致过度释放,但是我确实通过不允许调用其正确的 WKWebView方法来破坏 UIScrollViewDelegate中的某些内容。

解决方法是在单独的对象中实现 UIScrollViewDelegate

关于ios - WKWebView子类在dealloc上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060442/

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