Xib 中创建WKWebView导致Memory Leak异常

问题

今天在测试 App 内存泄漏时,发现所有展示网页的画面都出现了错误,如下图:


Instruments Leaks 截屏
Xcode Debug Memory Graph 截屏
分析

通过 Instruments Leaks 和 Xcode Debug Memory Graph 工具可以看出是系统框架WebKit出现了内存泄漏。
因为Call Tree勾选了“Hide System Libraries”也没有隐藏该错误,所以分析这个应该是可以被解决的。
于是分析了之前版本与当前版本中对应画面有何不同:
以前版本:WKWebView通过代码创建,测试内存泄漏时正常;
当前版本:WKWebView通过Xib创建,测试内存泄漏时异常。

解决方案与结果

通过删除 Xib 中的WKWebView控件,使用纯代码形式创建WKWebView后,通过了Instruments Leaks 的测试。

修改后

Tips: Xcode 中 iOS 11以下WKWebView是不能在 Xib 或 Storyboard 中创建的,iOS 11及以上才能在 Xib 或 Storyboard 中创建。可能是苹果没有优化,才会出现这种问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容