2011年7月31日 星期日

內存管理筆記

retainCount 是 objective-c  內存管理的唯一依據.  release 後自動  retainCount 減 1 ,  到 0 時  對象 的dealloc 會被觸發。
     所以永遠不該呼叫 對象的 dealloc 方法

 
1,alloc, allocWithZone,new(帶初始化)
   
為對象分配內存,retainCount為“1”,並返回此實例
2,release
   
retainCount 減“1”,減到“0”時調用此對象的dealloc方法
3,retain
   
retainCount 加“1”
4,copy,mutableCopy
   
複製一個實例,retainCount數為“1”,返回此實例。所得到的對像是與其它上下文無關的,獨立的對象(乾淨對象)。
5,autorelease
   
在當前上下​​文的AutoreleasePool棧頂的autoreleasePool實例添加此對象,由於它的引入使Objective-C(非GC管理環境)由全手動內存管理上升到半自動化。


詳細參考文章:參考文章

沒有留言:

張貼留言