【iOS学步】block回调-2
1.带参数的block
//TestView.h
@property (nonatomic, copy) void (^changeColor) (NSString *test);
//TestView.m
- (void) buttonAction (UIButton *sender){
self.changeColor(@"Click to change color.");
}
//ViewContrller.m
self.secVC = [[SecondViewController alloc]init];
//test for 带参数的block属性
self.secVC.changeColor = ^(NSString *str) {
NSLog(@"jump to: %@", str);
self.view.backgroundColor = [UIColor greenColor];
};2.block作为函数参数
//TestView.h
- (void) parameterBlock:(void(^)(NSString *))block;//声明带block参数的函数,这个block参数是参数为NSString的block
//TestView.m
- (void) buttonAction (UIButton *sender){
self.changeColor(@"Click to change color.");
}
- (void) parameterBlock:(void(^)(NSString *)block){
self.changeColor = block; //将参数block赋值给属性changeColor的block,则上面触发changeColor的时候,就会触发block
}
//ViewController.m
//test for block为参数的函数
[self.secVC parameterBlock:^(NSString *str) {
NSLog(@"Test for BlockParameter %@", str);
}];3.宏定义block
查看7道真题和解析