1. 什么是弱引用和無(wú)主引用熄诡?
弱引用、無(wú)主引用: 允許引用環(huán)中的一個(gè)實(shí)例引用另外一個(gè)實(shí)例厘线,但不是強(qiáng)引用奄毡。
2. 弱引用
弱引用 weak 對(duì)于生命周期中引用會(huì)變?yōu)閚il的實(shí)例,使用弱引用励烦;
聲明屬性或者變量的時(shí)候谓着,關(guān)鍵字weak表明引用為弱引用;
弱引用不會(huì)增加實(shí)例的引用計(jì)數(shù)坛掠,因此不會(huì)阻止ARC銷毀被引用的實(shí)例赊锚。這種特性使得引用不會(huì)變成強(qiáng)引用治筒;
弱引用只能聲明為變量類型,因?yàn)檫\(yùn)行時(shí)它的值可能改變舷蒲;弱引用絕對(duì)不能聲明為常量耸袜。
因?yàn)槿跻每梢詻]有值,所以聲明弱引用的時(shí)候必須是可選類型的牲平。
3. 無(wú)主引用
無(wú)主引用 unowned 對(duì)于初始化賦值之后引用再也不會(huì)賦值為nil的實(shí)例堤框,使用無(wú)主引用;
無(wú)主引用默認(rèn)始終有值欠拾;所以只能定義為非可選值類型胰锌;在屬性、變量前添加unowned關(guān)鍵字藐窄,可以聲明一個(gè)無(wú)主引用资昧;
非可選類型變量不能賦值為nil,因此當(dāng)實(shí)例被銷毀的時(shí)候荆忍,ARC無(wú)法將引用賦值為nil格带;
當(dāng)實(shí)例被銷毀時(shí),視圖訪問(wèn)實(shí)例的無(wú)主引用會(huì)觸發(fā)運(yùn)行時(shí)錯(cuò)誤刹枉;因此使用無(wú)主引用時(shí)請(qǐng)確保引用始終指向一個(gè)未銷毀的實(shí)例叽唱;