面试问道了block怎么写。长时间使用代码片段,一时竟没写出来。
衰啊!!!
记录下:
block的组成
void(^myBlock)(NSString *str1,NSString *str2);
void:返回值
myBlock:名字
str1,str2 : 参数(可以是很多个)
声明属性时的写法:
//最好用copy修饰
@property (copy, nonatomic) void (^tfBlock)(UITextField *textField);
typedef 的时候
typedef void(^success) (NSString *states);
@interface LQSecondBlockViewController ()
@property (nonatomic,copy) success networkingSuccess;
@end
局部变量时
int(^myBlock)(int i )= ^(int i){
return i + 1;
};
int j = myBlock(1);
作为方法的参数时
- (void)lwqNetWorkingsuccess:(void(^)(NSString * states)) success{
}
总结一下
作为方法的参数时 不需要在“^‘的后面加block的名字。
其余的情况都需要加。