1. 程式人生 > >ARC與非ARC的迴圈引用

ARC與非ARC的迴圈引用

迴圈引用一般是這麼一種情況:


我建立了一個人的物件和一隻狗的物件,我在.m檔案中例項化了這兩個物件,並且在物件裡面互相包含物件的屬性,互相引用 

在ARC中,如果兩個修飾符都是使用strong強引用的話,那麼兩個物件都不能釋放記憶體,因為互相指向了。這時應該在一邊使用weak弱引用。

為什麼呢?

因為一方有了弱引用,弱引用一方指標沒有了指向,對應的物件記憶體也會釋放。從而導致強引用的一方失去弱指標的引用,retainCount也會為0,隨著也會被釋放。

其中非ARC也是一樣的原理,一邊使用retain,另一邊要使用assign