iOS block定义方式

iOS Block定义方式

第一种定义场景

typedef void(^TestBlock)(void);
typedef BOOL(^TestBOOLBlock)(void);
typedef BOOL(^TestBOOLResultBlock)(BOOL result);

@interface ViewController ()

@property(nonatomic,copy)TestBlock testBlock;
@property(nonatomic,copy)TestBOOLBlock testBOOLBlock;
@property(nonatomic,copy)TestBOOLResultBlock testBOOLResultBlock;

@end

- (void)viewDidLoad {
    [super viewDidLoad];

    self.testBlock = ^(){
        NSLog(@"testBlock");
    }
    self.testBlock();

   self.testBOOLBlock = ^BOOL{
        NSLog(@"testBlock");
    }
    self.testBOOLBlock();

   self.testBlock = ^BOOL (BOOL result){
        NSLog(@"testBlock");
    }
    self.testBOOLResultBlock(YES);
}


第二种定义场景


@interface ViewController ()

@property(nonatomic,copy)  void(^testBlock)(void);

@end

第三种种定义场景

 void(^testBlock)(void) = ^(){
        
 };
 testBlock();  //执行block

第四种种定义场景

- (void)doSomethingWithComplete:(void(^)(void))completeBlock{
    
    //Some things done
    
    if(completeBlock){
        completeBlock();
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容