a創(chuàng)建對(duì)象b,b中有C類對(duì)象c,所以a對(duì)b有一個(gè)引用,b對(duì)c有一個(gè)引用砂豌,a.b引用計(jì)數(shù)分別為1厢岂,1。當(dāng)c.delegate = b的時(shí)候阳距,實(shí)則是對(duì)b有了一個(gè)引用塔粒,如果此時(shí)c的delegate用strong修飾則會(huì)對(duì)b的值內(nèi)存引用計(jì)數(shù)+1,b引用計(jì)數(shù)為2筐摘。當(dāng)a的生命周期結(jié)束卒茬,隨之釋放對(duì)b的引用,b的引用計(jì)數(shù)變?yōu)?咖熟,導(dǎo)致b不能釋放圃酵,b不能釋放又導(dǎo)致b對(duì)c的引用不能釋放,c引用計(jì)數(shù)還是為1馍管,這樣就造成了b和c一直留在了內(nèi)存中郭赐。
而要解決這個(gè)問題就是使用weak或者assign修飾delegate,這樣雖然會(huì)有c仍然會(huì)對(duì)b有一個(gè)引用确沸,但是引用是弱引用捌锭,當(dāng)a生命周期結(jié)束的時(shí)候俘陷,b的引用計(jì)數(shù)變?yōu)?,b釋放后隨之c的引用消失观谦,c引用計(jì)數(shù)變?yōu)?拉盾,釋放。