美文网首页
问题:weak属性需要在dealloc中置nil么?

问题:weak属性需要在dealloc中置nil么?

作者: 姜小舟 | 来源:发表于2020-05-07 15:45 被阅读0次

    不需要。
    在ARC环境无论是强指针还是弱指针都无需在 dealloc 设置为 nil , ARC 会自动帮我们处理。

    runtime 如何实现 weak 变量的自动置nil?

    runtime对注册的类, 会进行布局,对于 weak 对象会放入一个 hash 表中。 用 weak 指向的对象内存地址作为 key,当此对象的引用计数为0的时候会 dealloc,假如 weak 指向的对象内存地址是a,那么就会以a为键, 在这个 weak 表中搜索,找到所有以a为键的 weak 对象,从而设置为 nil。

    相关文章

      网友评论

          本文标题:问题:weak属性需要在dealloc中置nil么?

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