Block循环引用

2017-07-12  本文已影响0人  牛程程

Block的循环引用

  如果在Block中使用_strong修饰符的对象类型自动变量,当block从栈复制到堆时,该对象为Block所持有。这样就容易引起循环引用。

为了避免循环引用可以使用_block变量、_weak修饰符以及_unsafe_unretained修饰符。 

_block和_weak的区别:

1._block可以修饰对象,也可以修饰基本类型。

2._weak只可以修饰对象。

3._block在block中可以被重新赋值,_weak不可以。

_unsafe_unretained不会被自动置空为nil。

上一篇下一篇

猜你喜欢

热点阅读