一,事件循環。一個典型的圖形應用程序往往花費很多時間等待用戶操作。在控制程序運行的人非常緩慢地作出決定(例如單擊鼠標或按下某個鍵)以前,程序將一直處于空閑狀態。當發生這樣的事件時,程序被喚醒并開始工作,執行某些必要的操作以響應這一事件。在處理完這一事件后,程序返回到休眠狀態并等待下一個事件發生。為了降低程序的內存空間占用,Cocoa在程序開始處理事件之前創建一個自動釋放池,并在事件處理結束后銷毀自動釋放池。這樣可以使累積的臨時對象的數量保持在最低程度。
二,自動釋放池被清理的時間是完全確定的:要么是在你自己的代碼中顯示地銷毀,要么是在事件循環結束時使用AppKit銷毀。你不必關心守護程序如何隨機地銷毀自動釋放池。因為在調用函數的過程中自動釋放池不會被銷毀,所以你也不用保留使用的每一個對象。
參考資料:《Object-C基礎教程》
新聞熱點
疑難解答