【问题标题】:(lots of) UIWebView memory leaks(很多)UIWebView 内存泄漏
【发布时间】:2011-09-19 07:00:54
【问题描述】:
我从其他帖子中看到 UIWebView 存在内存泄漏问题。
但是,由于我泄漏的对象数量众多,我不得不怀疑我是否做错了什么。 'Leaks' 报告了关于打开 UIWebView、加载页面和关闭(它是 Facebook 登录页面)的 60 次泄漏。我已经检查了这些对象中的每一个的堆栈跟踪,它们从未接触过我的代码。它们要么都在一个单独的线程中(我只使用主线程),要么从“主”转到一堆灰色的内部方法。这是 UIWebView 预期的吗?我正在运行最新的固件,我认为他们现在已经修复了这个问题。
顺便说一句,我在设备上看到了这个。
我也尝试在苹果网站上检查错误,但除了通过问题 ID 之外没有其他方法可以搜索..?
肖恩
这是泄漏的捕获:
【问题讨论】:
标签:
iphone
memory-leaks
uiwebview
【解决方案1】:
很抱歉这么快就回答了我自己的问题,但我刚刚发现了问题。
如果您为委托方法返回 NO:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
然后释放 UIWebView,它会像上面描述的那样泄漏。返回 YES 可以解决问题。至少对我来说,到目前为止的所有固件版本(4.3.3)都会发生这种情况。我正在向 Apple 提交错误。
【解决方案2】:
同学们!
我知道这有点晚了%)
研究了这个主题一段时间,找到了最适合我的解决方案 - 使用 WKWebView 它不会泄漏!
就是这样 - 如此简单。