美文网首页
最新的assign与weak的区别 看不明白你打我

最新的assign与weak的区别 看不明白你打我

作者: 林步蜓 | 来源:发表于2016-05-30 15:24 被阅读73次
1 能否产生野指针的区别

weak 修饰的变量使用之后,不会产生野指针,因为其指向的数据清空时,变量会自动置空。 weak是安全的。
assign 修饰的变量使用之后如果没有置空,可能会产生野指针。

2 修饰对象类型的区别

首先数据分为 对象类型(object) 和 非对象类型(CGFLoat,NSInteger)
weak 只可以修饰对象。(如果你修饰非对象类型,编译器会报错)
assign 只修饰非对象类型。 当需要修饰对象类型时,MRC时代使用unsafe_unretained。当然,unsafe_unretained也可能产生野指针,所以它名字是"unsafe_***"。现在就用weak基本没问题了。

相关文章

网友评论

      本文标题:最新的assign与weak的区别 看不明白你打我

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