2011-08-25 62 views
1

我有一個UIWebView的問題。我正在使用此組件在iPad/iPhone上加載普通網頁。 UIWebView呈現在modalViewController中。有些頁面非常飢餓,有些頁面也有Flash內容。防止UIWebView分配給很多內存

的問題是,有時在一些網頁上,我得到內存警告

Received memory warning. Level=1 

當發生這種情況時,我關閉這個modalViewController(已頁web視圖加載)比前視圖重新加載自身automacially - 方法viewDidLoad中再次被解僱。

我懷疑UIWebView中的一些頁面佔用了大量內存,並且比應用程序釋放其視圖的內存,但不會崩潰。

有沒有辦法限制webView的內存消耗,或者有沒有其他方法可以避免這種內存警告?

謝謝!

回答

3

對於UIWebView對象的內存使用情況幾乎沒有控制權。您對整個系統內存使用情況的控制也很少。所以沒有辦法避免內存警告。 iOS預計您的應用程序在收到內存警告時會正常運行,因此應該編寫您的viewDidLoad方法來處理內存警告後的重新運行。

您可以做的唯一限制UIWebView的內存使用情況的方法是讓它查看簡單的網頁。從你的問題看來,這不是一種選擇。

編輯:viewDidUnload在低內存條件下調用。預計該方法將釋放在viewDidLoad方法中很容易重新創建的任何內容。當此視圖返回到屏幕時,不要釋放要向用戶顯示的狀態信息。然後在你的viewDidLoad方法中檢查你創建的所有對象。如果它們是nil,則需要初始化它們,否則這不是第一次調用方法,並且不應該初始化對象。

換句話說:viewDidUnload可以處理內存不足的情況,viewDidLoad不應該假設它只運行一次。

+0

感謝您的解釋。但我如何處理viewDidLoad中的內存警告? –