美文网首页
iOS 中 assign 和 weak 的区别

iOS 中 assign 和 weak 的区别

作者: Mr_滑 | 来源:发表于2021-12-18 14:59 被阅读0次

    assign 和 weak 都是弱引用声明类型 assign常用来修饰 Int 类型数据,weak 常用来修饰 弱饮用对象

    weak 声明的变量对象释放后 赋值为nil
    assign声明的变量对象释放后不会自动赋值为nil 会造成野指针

    weak 只可以修饰对象。如果修饰基本数据类型,编译器会报错-“Property with ‘weak’ attribute must be of object type”。
    assign 可修饰对象,和基本数据类型。当需要修饰对象类型时,MRC时代使用unsafe_unretained。当然,unsafe_unretained也可能产生野指针,所以它名字是"unsafe_”。

    相关文章

      网友评论

          本文标题:iOS 中 assign 和 weak 的区别

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