
委托 一個(gè)對象保存另一個(gè)對象的引用,被引用的對象實(shí)現(xiàn)了事先確定的協(xié)議,該協(xié)議用于將引用對象中的變化通知給被引用對象。 委托和委托方雙方的property聲明屬性都是assign而不是retain為了避免循環(huán)引用造成的內(nèi)存泄露循環(huán)引用的問題這樣理解 比如在main函數(shù)中創(chuàng)建了兩個(gè)類的對象A和B,現(xiàn)在引用計(jì)數(shù)是1?,F(xiàn)在讓A和B互相引用A有一個(gè)屬性是B對象,屬性說明是retain;B有一個(gè)屬性是A對象,屬性說明是retain,現(xiàn)在兩個(gè)對象的引用計(jì)數(shù)都增加1,都變成了2?,F(xiàn)在執(zhí)行[A releasw];[B release];此時(shí)創(chuàng)建對象的main函數(shù)已經(jīng)釋放了自己對對象的所有權(quán),但是此時(shí)A和B的引用計(jì)數(shù)都還是1,因?yàn)樗麄兓ハ嘁昧恕?這使你發(fā)現(xiàn)A和B將無法釋放,因?yàn)橐脶尫臕必須先釋放B,在B的dealloc方法中再釋放A。同理,想要釋放B必須先釋放A,在A的dealloc方法中再釋放B。所以這兩個(gè)對象將一直存在內(nèi)存中而不釋放,這就是所謂的循環(huán)引用的問題。
以上就是委托是什么,希望對大家有所幫助。









