[iOS]UIWebView內存消耗過多解決方法

[iOS]UIWebView內存消耗過多解決方法

程序員

在iOS開發時,使用UIWebView 來加載顯示一個網頁是比較常見的情況. 用過UIWebView 的人可能知道當應用使用多個UIWebView 來加載網頁時,內存使用增加特別厲害.最近剛好遇到這個問題. 應用普通內存只使用 20~30M的樣子, 當一直打開UIWebView 的時候(我webView加載的是視頻網頁) 最高內存使用達到了 220M. 這個內存使用已經太多了.

本文主要有3 部分內容:

  • WKWebView的基本使用方法

  • 針對iOS8以前的設備同時使用 WKWebView 和 UIWebView

  • NSURLConnection 緩存設置及清除

[iOS]UIWebView內存消耗過多解決方法

(3)一些基本的Delegate, 主要用於開始加載,加載完成,加載錯誤等, 按需要使用. (記得實現 WKNavigationDelegate )

使用時請替換裡面的具體方法

[iOS]UIWebView內存消耗過多解決方法

(如需同時兼容iOS8 和 iOS8 之前設備請看以下)以上代碼僅在iOS8以後有效所以,在iOS8之前還是使用UIWebView吧,用於過渡. 附帶說下區分iOS8 和 iOS8 之前分別使用 UIWebView和WKWebView.:

  1. 判斷當前設備系統版本:

[iOS]UIWebView內存消耗過多解決方法

(2)在所有使用到UIWebView的情況下進行判斷(我自己是定義了兩個成員變量,在iOS8之前使用webView, iOS8之後使用wkWebView),如

[iOS]UIWebView內存消耗過多解決方法

(3)實現兩個 delegate

[iOS]UIWebView內存消耗過多解決方法

(4)自己實現需要的 代理方法,可以參考以下常見的一些方法

[iOS]UIWebView內存消耗過多解決方法

其它一些基本消除NSURLConnection 的緩存方法:(選用)

  1. 設置緩存大小, AppDelegate 的 didFinishLaunchingWithOptions 方法裡


分享到:


相關文章: