2016-11-21 61 views
0

當引用計數變爲0或等待直到遇到釋放方法(編譯器自動插入到ARC中)以便dealloc發生時,對象是否立即釋放?引用計數,ARC

+1

需要調用'release'來使引用計數達到0. – rmaddy

+0

將引用計數設置爲零是錯誤的。當count_將變爲zero_時,運行時的當前實現將調用'dealloc',但從未實際將其減至零。這實際上是一樣的,但是如果你在探索並試圖理解潛在的行爲,可能會引起混淆。 – Avi

回答

1

與內存管理有關的整個問題是,只有一個明顯的地方纔能釋放對象,因此很難製作大型程序。如果是這樣的話,根本就不需要引用計數!

無論何時引用或銷燬引用,編譯器都會插入retainrelease調用。當調用release時,引用計數遞減。如果這樣做計數達到0,則調用deinit,並釋放對象的內存。這是release呼叫的全部內容。