ios學習筆記之記憶體管理,ios學習筆記

來源:互聯網
上載者:User

ios學習筆記之記憶體管理,ios學習筆記

一,記憶體管理類型定義
     1,基本類型  任何C的類型,eg:
     int,short,char,long,long long,struct,enum,union等屬於基本類型或結構體
     記憶體管理對於C語言的基本類型無效
     2,OC類型(非基本類型)
     任何繼承於NSObject類的對象都屬於OC類型
     也就是除了C之外的其他類型

二,OC對象結構
     所有OC對象都有著一個計數器,保留著當前對象被引用的數量,如果計數器為0,那麼就真正的釋放這個對象。

三,alloc   retain  release 函數
     1, alloc函數是建立對象使用,建立完成後計數器為1(只用一次)
     retain是對一個對象的計數器+1 (可以多次調用)
     release是對一個對象計數器-1(減到0 對象就會從記憶體中釋放)

     2,oc類中實現了引用計數器,對象知道當前被引用的次數。
     如果需要引用對象,可以給對象發送一個retain訊息,這樣對象計數器就+1;
     當不需要引用對象了,可以給對象發送release訊息,這樣對象計數器就-1;
     當計數器減到0,自動調用對象的dealloc函數,對象就會釋放記憶體;
     計數器為0的對象不能再使用release和其他方法。

四,自動釋放池
     自動釋放池是OC的一種記憶體自動回收機制,可以將一些臨時變數通過自動釋放池來統一回收釋放。
     當自動釋放池本身銷毀的時候,池子裡面所有的對象都會做一次release操作。
     任何OC對象只要調用autorelease方法,就會把該對象放到離自己最近的自動釋放池中(棧頂的釋放池)。

五,不是用alloc,retain,copy建立的對象,不能使用release釋放。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.