Strong與Weak的區(qū)別?
strong為強(qiáng)引用,weak為弱引用乾巧。
(weak和strong)不同的是 當(dāng)一個(gè)對(duì)象不再有strong類型的指針指向它的時(shí)候 它會(huì)被釋放 ,即使還有weak型指針指向它藤滥。
一旦最后一個(gè)strong型指針離去 社裆,這個(gè)對(duì)象將被釋放,所有剩余的weak型指針都將被清除标沪。
一個(gè)很常用的例子:
想象我們的對(duì)象是一條狗金句,狗想要跑掉(被釋放)吕嘀。
strong型指針就像是栓住的狗。只要你用牽繩掛住狗偶房,狗就不會(huì)跑掉棕洋。如果有5個(gè)人牽著一條狗(5個(gè)strong型指針指向1個(gè)對(duì)象),除非5個(gè)牽繩都脫落 掰盘,否著狗是不會(huì)跑掉的。
weak型指針就像是一個(gè)小孩指著狗喊到:“看奢驯!一只狗在那” 只要狗一直被栓著次绘,小孩就能看到狗典蜕,(weak指針)會(huì)一直指向它罗洗。只要狗的牽繩脫落钢猛,狗就會(huì)跑掉,不管有多少小孩在看著它贩绕。
只要最后一個(gè)strong型指針不再指向?qū)ο笫缜悖敲磳?duì)象就會(huì)被釋放征椒,同時(shí)所有的weak型指針都將會(huì)被清除。
(1)任何對(duì)象勃救,如果仍有強(qiáng)指針指著這個(gè)對(duì)象,就不會(huì)銷毀;
(2)任何對(duì)象勃黍,已經(jīng)沒有強(qiáng)指針指著這個(gè)對(duì)象晕讲,即自動(dòng)銷毀瓢省。(ARC里面,一旦對(duì)象沒有指針指向疑枯,就會(huì)馬上被釋放蛔六。)