首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dealloc上的WKWebView子类崩溃

dealloc上的WKWebView子类崩溃
EN

Stack Overflow用户
提问于 2016-05-05 21:19:53
回答 1查看 867关注 0票数 1

当我的WKWebView子类(MyWKWebView) dealloc运行时,它会崩溃:

2016-05 15:40:08.814 MyApp15559:202920 -MyViewController dealloc: In MyViewController dealloc objc15559:无法形成对类MyWKWebView的实例(0x7f9db7f0dbf0)的弱引用。这个对象可能被过度释放,或者正在被释放.

我没有对MyWKWebView的弱引用,但MyWKWebView本身保存了对我的UIViewController子类(MyViewController)的弱引用,后者拥有MyWKWebView

有什么想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-05 21:19:53

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

这很重要,因为WKWebView已经符合UIScrollViewDelegate,尽管它在标头中没有这么说

代码语言:javascript
复制
#if TARGET_OS_IPHONE
WK_CLASS_AVAILABLE(10_10, 8_0)
@interface WKWebView : UIView
#else

但是,如果您查看WKWebViewInternal.h头,我们会看到一个可疑的类别:

代码语言:javascript
复制
@interface WKWebView () WK_WEB_VIEW_PROTOCOLS

如果我们在文件中进一步查看,我们会发现WK_WEB_VIEW_PROTOCOLS<UIScrollViewDelegate> on iOS:

代码语言:javascript
复制
#if PLATFORM(IOS)
#define WK_WEB_VIEW_PROTOCOLS <UIScrollViewDelegate>
#endif

我找不到会显式导致过度发布的地方,但我肯定是在WKWebView中搞砸了一些东西,因为它不允许调用适当的UIScrollViewDelegate方法。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37060442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档