美文网首页
assign 和 weak 区别?

assign 和 weak 区别?

作者: zcaaron | 来源:发表于2016-07-10 11:52 被阅读53次

    assign

    自动生成: __unsafe_unretained  
    1.不是强引用 不能保住OC对象的命
    2.如果引用的OC对象销毁了,指针并不会被自动清空,依然指向销毁的对象(很容易产生野指针错误 : EXC_BAD_ACCESS)
    

    weak

    生成:  _Nullable__weak
    1.不是强引用,不能保住OC对象的命
    2.如果引用的OC对象销毁了,指针被自动清空(变为nil),不再指向销毁的对象(永远不会产生野指针错误)
    

    用途

    • assign 一般用在基本数据类型上面,你如int\double等
    • weak 一般用在代理对象上面,或者用在解决循环引用的问题
    • assign 的速度 > weak.

    相关文章

      网友评论

          本文标题:assign 和 weak 区别?

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