iOS 中 assign 和 weak 的区别

2021-12-18  本文已影响0人  Mr_滑

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_”。

上一篇下一篇

猜你喜欢

热点阅读