1.在init函式中必須呼叫[super init],函式dealloc中必須呼叫[super dealloc].
2.呼叫以「alloc」,"new","copy","mutablecopy"開頭函式的生成的物件,必須release
3.物件呼叫retain,必須release
4.物件可以呼叫autorelease,延遲釋放.
5.每個執行緒中至少有乙個autoreleasepool.
6.對於nsarray,nsdictionary等collection,呼叫release會自動清除(remove and release)所有包含的物件.
7.如果你不想汙染當前autoreleasepool,可以這樣做
8.避免迴圈引用(retain),如 a->b b->c c->a,如果無法避免可以為物件新增其他釋放函式(dispose)來破除迴圈.
iOS 記憶體管理總結
一 自動釋放池 自動釋放池,任何標記為自動釋放並因此新增到池中的物件,將在池本身被釋放的同時也自動釋放,程式可以有多個自動釋放池,它們還可以是巢狀的。如果程式在執行時將產生大量的臨時物件,就可能需要在程式中建立多重自動釋放池。例如 for inti 0 i 1000000 i 在執行此段 的時候會有...
iOS記憶體管理小總結
1 引用計數機制通過可以遞增遞減的計數器來管理 記憶體。物件建立好之後,其保留計數至少為1。若保留計數為正,則物件繼續存活。當保留計數降為0時,物件就被銷毀了 2 在物件生命週期中,其餘物件通過引用來保留或者釋放此物件。保留與釋放操作分別會遞增及遞減保留計數 3 使用arc一定要記住,引用計數實際上...
iOS記憶體管理的問題總結
這幾個關鍵字在宣告變數的時候經常遇到,那麼它們有什麼區別,應該如何選擇呢?這些關鍵字的主要區別,在於對記憶體的管理。首先,要介紹一下objective c的記憶體管理機制。objective c對記憶體的管理,以一種叫做 retain count 的方式來管理。對於乙個物件,當它被new alloc...