tft每日頭條

 > 知識

 > 委托是什麼

委托是什麼

知識 更新时间:2024-08-09 08:15:34

委托 一個對象保存另一個對象的引用,被引用的對象實現了事先确定的協議,該協議用于将引用對象中的變化通知給被引用對象。 委托和委托方雙方的property聲明屬性都是assign而不是retain為了避免循環引用造成的内存洩露循環引用的問題這樣理解 比如在main函數中創建了兩個類的對象A和B,現在引用計數是1。

現在讓A和B互相引用A有一個屬性是B對象,屬性說明是retain;B有一個屬性是A對象,屬性說明是retain,現在兩個對象的引用計數都增加1,都變成了2。現在執行[A releasw];[B release];此時創建對象的main函數已經釋放了自己對對象的所有權,但是此時A和B的引用計數都還是1,因為他們互相引用了。

這使你發現A和B将無法釋放,因為要想釋放A必須先釋放B,在B的dealloc方法中再釋放A。同理,想要釋放B必須先釋放A,在A的dealloc方法中再釋放B。所以這兩個對象将一直存在内存中而不釋放,這就是所謂的循環引用的問題。

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关知識资讯推荐

热门知識资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved