【iOS】keywords

assign vs weak

assign:简单赋值,用于基本数据类型,不会改变引用基数.
weak: arc后引入的关键字,用于对象类型,不会改变引用计数.


__block vs __weak

__block不管是ARC还是MRC模式都可以使用,可修饰对象和基本数据类型。
__weak 只能在ARC模式下使用,只能修饰对象,不能修饰基本数据类型。
__block 修饰的对象在block中可以被修改,且不会被block强引用。
__weak 修饰符的对象,作用等同于定义为weak的property,当对象没有任何强引用的时候,会被设置为nil;在block中不可以被修改。


你可能感兴趣的:(【iOS】keywords)