标签:
1. 定义block
以返回NSInterger 接受bool 参数为例
1)作为参数
methodTakeBlockAsParamter: (NSInterger (^) (BOOL flag))blockName
2) 作为变量或者property
@property(copy, nonatomic) NSInterger (^blockName) (BOOL flag);
3)typedef
typedef NSInterger (^blockName) (BOOL flag);
2. 使用注意
1) 若在block 中设置block意外的变量,需要在变量加__block 标识(两个连续的下划线)
2) 若在block 中引用了拥有(strong 或者 retain)该block的对象,则构成了retain cycle, 需要创建一个指向该对象的变量,并用 __weak标志;
标签:
原文地址:http://www.cnblogs.com/beddup/p/4621580.html