iOS UIWebView漏掉了

时间:2015-09-21 06:09:54

标签: ios webview uiwebview

class MyViewController: UIViewController {
     @IBOutlet weak var webView: UIWebView?
     override func viewDidLoad() {
    super.viewDidLoad()

    let url = NSURL(string: urlString)
    let request = NSURLRequest(URL: url!)
    SVProgressHUD.show()

    webView?.loadRequest(request)
    webView?.scrollView.header = MJRefreshNormalHeader(refreshingBlock: {

      [weak self] in
      if let strongSelf = self {
        strongSelf.webView?.reload()
      }})   }
     override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated) 

    SVProgressHUD.dismiss()   }    }

extension MyViewController: UIWebViewDelegate {
     func webViewDidFinishLoad(webView: UIWebView) {
    webView.scrollView.header.endRefreshing()
    SVProgressHUD.dismiss()   }       func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
    webView.scrollView.header.endRefreshing()
    SVProgressHUD.dismiss()   }    }

视图控制器被导航控制器推动,当我弹出它时,我发现了泄漏。在instrument.Leak我看到了这些。

Leaked Object   #   Address Size    Responsible Library Responsible Frame NSMutableArray    1   0x137a6ddb0 48 Bytes    UIKit   -[_UIKeyboardTextSelectionGestureController init]
_UIKeyboardTextSelectionController  1   0x137a6e800 96 Bytes    UIKit   -[UIWebSelectionAssistant addNonEditableForceTextSelectionGestureRecognizersToView:]
_UIKeyboardBasedNonEditableTextSelectionGestureController   1   0x137a6dcd0 160 Bytes   UIKit   -[UIWebSelectionAssistant addNonEditableForceTextSelectionGestureRecognizersToView:]

我确定webView,myViewController被延迟,但是当弹出myViewController时,4M增加而不是释放。请帮助和谢谢。

列出项目

1 个答案:

答案 0 :(得分:3)

根据For example,有一种解决方法,如果您将let config = WKWebViewConfiguration() config.selectionGranularity = .character //WKSelectionGranularityCharacter let myWebview = WKWebview(frame: frame, configuration: config) 设置为{{1}},则泄漏会停止:

{{1}}

这对我有用,但是当选择文本时,webview中没有选择矩形。在您的情况下,这可能是也可能不是可行的解决方法。

编辑我刚注意到您的问题是针对UIWebView,而不是WKWebView。看起来你可以在UIWebView上设置它。我现在就留下这个答案,因为WKWebView的人搜索这个内存泄漏可能会找到这个帖子...