assign VS weak ,__block vs __wea
2017-04-10 本文已影响4人
43b86d3b5040
-
assign
用于基础类型的赋值,不改变属性的引用计数,如:NSInteger
,CGFloat
,int
float
double
-
weak
用于对象类型,不改变属性的引用计数,当该对象被释放的时候,该弱引用的属性自动失效并且被赋值为nil
,该属性可以避免两个强引用产生的循环引用导致的内存无法释放的问题。 -
__block
用于指明当前变量可以在block内部进行修改,因为在block
申明的同时会捕获该block
所使用的全部自动变量的值,仅有使用权没有修改权利,使用了__block
关键字后可以进行修改。 -
__weak
是所有权修饰符,被修饰的变量在使用结束后会被释放。
所有权修饰符包括:__strong
__weak
__unsafe_unretained
__autorealease