美文网首页
说说你理解weak属性?

说说你理解weak属性?

作者: Adam_潜 | 来源:发表于2018-12-09 16:31 被阅读7次

    weak 可以用于delegate
    weak底层是hashmap
    key是对象的地址
    value是weak指针的数组(因为可能有多个weak指针指向这个对象)

    初始化的时候, runtime会调用objc_initWeak函数,
    initweak函数会初始化一个新的weak指针指向对象的地址

    添加引用的时候, 会调用storeweak函数, storeweak的作用是更新指针指向
    创建对应的弱引用表

    释放时, 调用clearDealocating函数, 会根据对象地址获取所有weak指针地
    址的数组, 然后遍历这个数组把其中的数据设为nil, 最后把这个entry从weak
    表中删除, 最后清理对象的记录

    相关文章

      网友评论

          本文标题:说说你理解weak属性?

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