和weak關(guān)鍵字不同的是毯炮,unowned聲明的只能定義為非可選類型驶俊。在屬性變量前加unowned伐脖,可以聲明一個(gè)無主引用手素。
因?yàn)槭强蛇x類型嗜历,因此當(dāng)使用無主引用的時(shí)候娱两,不需要展開奥邮,可以直接訪問腥光。不過費(fèi)可選類型不能賦值為nil崔涂。因此當(dāng)實(shí)例銷毀的時(shí)候阳掐,ARC無法將引用賦值為nil。
因此:
weak的作用:
Person和Apartment的例子說明了下面的場(chǎng)景:兩個(gè)屬性的值都可能是nil,并有可能產(chǎn)生強(qiáng)引用環(huán)冷蚂。這種場(chǎng)景下適合使用弱引用缭保。
unowned的作用:
Customer和CreditCard的例子則說明了另外的場(chǎng)景:一個(gè)屬性可以是nil,另外一個(gè)屬性不允許是nil蝙茶,并有可能產(chǎn)生強(qiáng)引用環(huán)艺骂。這種場(chǎng)景下適合使用無主引用。