Swift strong、weak、unowned的区别

2018-11-27  本文已影响16人  ChancePro

strong代表强引用,是默认属性。

当一个对象被声明为strong时,就表示父层级对该对象有一个强引用的指向。此时该对象的引用计数会增加1。

weak代表弱引用。

当对象被声明为weak时,父层级对此对象没有指向,该对象的引用计数不会增加1。它在对象释放后弱引用也随即消失。继续访问该对象,程序会得到nil,不会崩溃。

unowned与弱引用本质上一样。

唯一不同的是,对象在释放后,依然有一个无效的引用指向对象,它不是Optional也不指向nil。如果继续访问该对象,程序就会崩溃。

weak和unowned的使用场景

上一篇 下一篇

猜你喜欢

热点阅读