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增加了,而没有发布。请帮忙,谢谢。
列表项目
发布于 2016-02-10 15:52:56
根据在这里贴出的答案的说法,如果您将configuration.selectionGranularity设置为WKSelectionGranularityCharacter,那么泄漏就会停止:
let config = WKWebViewConfiguration()
config.selectionGranularity = .character //WKSelectionGranularityCharacter
let myWebview = WKWebview(frame: frame, configuration: config)这对我来说是可行的,但是当选择文本时,在webview中没有选择矩形。在您的情况下,这可能是一个可行的解决方法,也可能不是一个可行的解决方案。
编辑我刚刚注意到你的问题是给UIWebView而不是WKWebView。看起来您无法在UIWebView上设置这个选项。我现在要留下这个答案,因为搜索这个内存泄漏的WKWebView人员可能会找到这个线程.
https://stackoverflow.com/questions/32688401
复制相似问题