oc 內存管理 -堆棧操作

內存空間分爲堆和棧

  • 對象的內存空間放在堆裏,(動態產生)不可能隨便回收。局部變量放在棧裏,代碼塊運行完就回收了。
  • 每一個oc對象都有一個引用計數器(4個字節),放在對象裏。表示引用的次數。

引用計數器的操作

  • 當使用alloc , new 或者 copy 創建一個對象時,新對象的引用計數器默認是1.
  • 當一個對象的引用計數器爲0時,對象佔用的內存就會被系統回收。
  • 給對象發送 retain消息就可以給計數器加一。(retain 方法返回對象。)
  • 給對象發送一個 release 消息,可以使引用計數器減一。
  • 可以給對象發送一個 retainCount消息獲得當前的引用計數器數值。

對象的銷燬

  • 當一個對象的引用計數器材數值爲0時,那麼它將銷燬,其佔用的內存被系統回收。
  • 當一個對象被銷燬時,系統就自動向對象發送一條 dealloc消息
  • 一般會重寫 dealloc 方法,在這裏釋放相關資源,dealloc 就像對象的遺言。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章