zoukankan      html  css  js  c++  java
  • weak属性需要在dealloc中置nil么?

    出题者简介: 孙源(sunnyxx),目前就职于百度

    整理者简介:陈奕龙(子循),目前就职于滴滴出行。

    转载者:豆电雨(starain)微信:doudianyu

    不需要。

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

    即便是编译器不帮我们做这些,weak也不需要在 dealloc 中置nil:

    正如上文的:runtime 如何实现 weak 属性 中提到的:

    我们模拟下 weak 的 setter 方法,应该如下:

    - (void)setObject:(NSObject *)object
    {
        objc_setAssociatedObject(self, "object", object, OBJC_ASSOCIATION_ASSIGN);
        [object cyl_runAtDealloc:^{
            _object = nil;
        }];
    }

    也即:

    在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。

  • 相关阅读:
    IfcFeatureElementAddition
    IfcOpeningElement
    IfcRelNests
    IfcElementAssemblyType
    IfcProjectionElement
    IfcFeatureElement
    IfcRelDefines
    Win10 Anaconda配置tensorflow
    Anaconda升级
    Anaconda 台式机环境
  • 原文地址:https://www.cnblogs.com/starainDou/p/5253476.html
Copyright © 2011-2022 走看看