block

类名.h

 @property (nonatomic, strong) void(^pushNextPage)(UIButton *button);

类.m里面
#pragma mark - button点击事件
- (void)handlePush:(UIButton *)button
{
self.pushNextPage(button);
}

在VC.m

infoView.pushNextPage = ^(UIButton *button){

};

block作为参数使用的时候

+ (void)networkHandlerGETWithURL:(NSString *)urlString completionHandler:(void (^)(id result, NSURLResponse *response, NSError *error))block{


  block(result, response, error);

}

如果在某个需要返回BOOL值的B方法里, 调用了上面这个带有bolck参数的A方法, 是不可以直接在A的block回调的花括号里面直接return BOOL值的, 需要声明一个BOOL的属性, 然后在这个回调的花括号里, 先给这个属性赋值, 出了回调的作用域之后, 在B方法里return这个属性

不带参数的block

@property (nonatomic, strong) void (^hideTwoBottomView)(void);

防止类外没实现block导致的崩溃, 在类内这么对block传值

if (self.didSelectedEnter) {
        self.didSelectedEnter();
  }

你可能感兴趣的:(block)