__block 和__weak

Posted 天亮了_jia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__block 和__weak相关的知识,希望对你有一定的参考价值。

1,在MRC 时代,__block 修饰,可以避免循环引用;ARC时代,__block 修饰,同样会引起循环引用问题;

2,__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型;

3,__weak只能在ARC模式下使用,也只能修饰对象,不能修饰基本数据类型;

4,__block对象可以在block中被重新赋值,__weak不可以;

5,__unsafe_unretained修饰符可以被视为ios SDK 4.3以前版本的__weak的替代品,不过不会被自动置空为nil。所以尽可能不要使用这个修饰符。(__weak 会自动置为nil)

以上是关于__block 和__weak的主要内容,如果未能解决你的问题,请参考以下文章

__block和__weak的区别

__block 和 __weak的区别

__block和__weak

(iOS) __block和__weak认识

__block 和__weak 区别及使用

在块内,__block 变量和静态变量之间的实际区别是啥?