簡體   English   中英

如何處理iPhone上的低內存警告?

[英]How to deal with low memory warnings on the iPhone?

當用戶深入導航控制器堆棧視圖時,我的應用程序接收到低內存警告時遇到問題。 在用戶瀏覽后續UITableViews中的一堆分層選項后,他可以在UIWebView中打開PDF文檔(在不同的視圖控制器中)。

一切正常,PDF加載,用戶可以瀏覽頁面。 但是,當文檔有點大,或者有多個頁面,並且用戶點擊導航控制器中的“后退”按鈕時,他的應用程序崩潰,因為導航控制器堆棧中的前一個視圖控制器已被解除分配。

在尋找處理低內存警告的方法以及處理這類問題之后,我發現了一些帖子,建議人們釋放可以釋放的對象,然后在用戶嘗試時稍后加載它們。加載已解除分配的視圖。 其中一篇文章是Craig Hockenberry的“ 處理記憶喪失:清理帖子”。

雖然這有點幫助,但它並沒有給我很多信息。

有人可以提供一個關於如何處理低內存警告的簡單指南,以及如何實現對象的“延遲加載”?

當內存不足時,系統會發出一系列與內存相關的消息。 任何實例化的視圖控制器都將獲得-didReceiveMemoryWarning消息。 如果不實現此操作,則默認操作(假設視圖控制器不是最前面的)是釋放控制器的視圖成員。 如果您有鈎子,或者可能進入其子視圖,那么當您的控制器返回到堆棧頂部時,這可能會導致問題。

您的首要任務是弄清楚導致問題的確切原因。 哪個對象被解除分配? 通常,修復此問題只是確保正確保留對象。

我建議你使用NSZombiesEnabled來嘗試追蹤你遇到問題的對象。 一旦你有了,你可以確保你正確地保留它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM