之所以我們要在控制器中使用weak躺坟,是因?yàn)橐话阄覀儠?huì)這樣做:
把block作為控制器的屬性,在不block中使用self。這樣就造成了當(dāng)self想要釋放的時(shí)候,block卻持有它洞就,導(dǎo)致self無(wú)法釋放。因此我們?nèi)绻皇褂脀eak的haul還可以怎么辦呢掀淘?
我們可以在頁(yè)面消失的時(shí)候旬蟋,把block屬性置為nil。這樣block就不再引用self了革娄。也就意味著self要釋放的時(shí)候倾贰,沒(méi)有對(duì)象在引用它了。這樣同樣可以達(dá)到目的拦惋。
拓展:
AFNetworking中匆浙,不需要使用weak。這是為什么呢架忌。因?yàn)椋赽lock回調(diào)后會(huì)將block置為nil我衬。這樣就導(dǎo)致了我們不需要使用weak了叹放。依然不會(huì)出現(xiàn)內(nèi)存泄漏饰恕。