如题。当一个类的成员变量为block时,属性应该设置为strong,weak还是copy?为什么?
@property (nonatomic, copy, readwrite) void (^randeomBlock) (id response, NSError * error);
1楼 @cheng.seattle 感谢回复。为什么要用copy而不是strong呢?
2楼 @xiaodu block如果用到了self,就会retain self ,如果是strong的话,就造成了循环引用
1楼 @cheng.seattle 使用retain也可以,但是block的retain行为默认是用copy的行为实现的,因为block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把block拷贝(copy)到堆,所以说为了block属性声明和实际的操作一致,最好声明为copy。