swift中的无主引用

和weak关键字不同的是,unowned声明的只能定义为非可选类型。在属性变量前加unowned,可以声明一个无主引用。

因为是可选类型,因此当使用无主引用的时候,不需要展开,可以直接访问。不过费可选类型不能赋值为nil。因此当实例销毁的时候,ARC无法将引用赋值为nil。

因此:

weak的作用:

Person和Apartment的例子说明了下面的场景:两个属性的值都可能是nil,并有可能产生强引用环。这种场景下适合使用弱引用。

unowned的作用:

Customer和CreditCard的例子则说明了另外的场景:一个属性可以是nil,另外一个属性不允许是nil,并有可能产生强引用环。这种场景下适合使用无主引用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容