ARC下OC對象釋放過程


OC對象,即繼承自NSObject的對象

 

 

當OC對象的引用計數變為0時,對象本身的dealloc方法會被調用,執行完成后,逐級向上調用父類的dealloc方法,一直調到NSObject的dealloc方法,NSObject的dealloc方法會去調用runtime的object_dispose方法,這個方法會去調用各個C++實例變量的析構函數;強引用OC實例變量的release方法,即各個實例變量的引用計數減一;解除所有關聯對象;然后解除所有的弱引用(即將指向當前OC對象的所有weak指針置空),最后調用free方法真正釋放內存。

 

由於實例變量最終的釋放時機是在NSObject的dealloc方法的object_dispose方法中,所以子類本身的dealloc方法中依然可以使用實例變量。

 

參考wwdc視頻第35分鍾左右

https://developer.apple.com/videos/play/wwdc2011/322/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM