美文网首页
Swift中的弱引用weak和无主引用unowned

Swift中的弱引用weak和无主引用unowned

作者: 向日葵的夏天_summer | 来源:发表于2021-03-12 15:57 被阅读0次
    1. 什么是弱引用和无主引用?
    弱引用、无主引用: 允许引用环中的一个实例引用另外一个实例,但不是强引用。
    
    2. 弱引用
     弱引用 weak 对于生命周期中引用会变为nil的实例,使用弱引用;
     声明属性或者变量的时候,关键字weak表明引用为弱引用;
     弱引用不会增加实例的引用计数,因此不会阻止ARC销毁被引用的实例。这种特性使得引用不会变成强引用;
    弱引用只能声明为变量类型,因为运行时它的值可能改变;弱引用绝对不能声明为常量。
    因为弱引用可以没有值,所以声明弱引用的时候必须是可选类型的。
    
    3. 无主引用
    无主引用 unowned 对于初始化赋值之后引用再也不会赋值为nil的实例,使用无主引用;
    无主引用默认始终有值;所以只能定义为非可选值类型;在属性、变量前添加unowned关键字,可以声明一个无主引用;
    非可选类型变量不能赋值为nil,因此当实例被销毁的时候,ARC无法将引用赋值为nil;
    当实例被销毁时,视图访问实例的无主引用会触发运行时错误;因此使用无主引用时请确保引用始终指向一个未销毁的实例;
    

    相关文章

      网友评论

          本文标题:Swift中的弱引用weak和无主引用unowned

          本文链接:https://www.haomeiwen.com/subject/bhyzqltx.html