天天看點

iOS開發那些事-響應記憶體警告

好的應用應該在系統記憶體警告情況下釋放一些可以重新建立的資源。在ios中我們可以在應用程式委托對象、視圖控制器以及其它類中獲得系統記憶體警告消息。

1、應用程式委托對象

在應用程式委托對象中接收記憶體警告消息,需要重寫applicationdidreceivememorywarning:方法。appdelegate的代碼片段:

2、視圖控制器

在視圖控制器中接收記憶體警告消息,需要重寫didreceivememorywarning方法。viewcontroller的代碼片段:

注意釋放資源代碼應該放在[super didreceivememorywarning]語句下面。

3、其它類

在其它類中可以使用通知,在記憶體警告時候ios系統會發出uiapplicationdidreceivememorywarningnotification通知,凡是在通知中心注冊了

我們在viewdidload方法中注冊uiapplicationdidreceivememorywarningnotification消息,接收到報警資訊調用handlememorywarning方法。這些代碼完全可以寫在其它類中,在viewcontroller中重寫didreceivememorywarning方法就可以了,本例這是示意性介紹一下uiapplicationdidreceivememorywarningnotification報警消息。

記憶體警告在裝置上出現并不是經常的,一般我們沒有辦法模拟,但模拟器上有一個功能可以模拟記憶體警告,啟動模拟器,選擇模拟器菜單硬體→模拟記憶體警告,這個時候我們會在輸出視窗中看到記憶體警告發生了。

2012-11-06 16:49:16.419 respondmemorywarningsample[38236:c07] received memory warning.

2012-11-06 16:49:16.422 respondmemorywarningsample[38236:c07] appdelegate中調用applicationdidreceivememorywarning:

2012-11-06 16:49:16.422 respondmemorywarningsample[38236:c07] viewcontroller中handlememorywarning調用

2012-11-06 16:49:16.423 respondmemorywarningsample[38236:c07] viewcontroller中didreceivememorywarning調用

繼續閱讀