作为苹果推荐的一种数据回调方式和数据类型,Block经常在项目中使用,但又经常忘记它特有的写法,所以专门做个小笔记,备查.
1.作为局部变量
1
| returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...};
|
2.作为属性
1
| @property (nonatomic, copy) returnType (^blockName)(parameterTypes);
|
3.作为方法参数
1
| - (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName;
|
4.作为回调参数
1
| [someObject someMethodThatTakesABlock:^returnType (parameters) {...}];
|
5.typedef的简写
1
| typedef returnType (^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters) {...};
|
6.self的弱引用(防止循环引用)
1
| __weak typeof(self) weakSelf = self;
|
7.修改局部变量
1
| __block NSString *someString = @"can be changed by Block";
|