Objective-C 闭包声明(Block)

本地变量

返回类型(^block名称)(参数类型列表) = ^返回类型(参数) {代码段};
//举例 example 
    NSString *(^blockName)(NSString *) = ^NSString *(NSString *a){
        NSLog(@"%@", a);
        return a;
    };
    NSString *test = blockName(@"test");
    NSLog(@"%@", test);

属性

@property (nonatomic, copy, nullability) 返回类型 (^block名称)(参数类型列表);
//举例 example
@property (nonatomic, copy) NSString *(^blockName)(NSString *);

方法参数

- (void)someMethodThatTakesABlock:(返回类型 (^)(参数列表))block名称;
//举例
- (void)someMethodThatTakesABlock:(NSString * (^)(NSString *))blockName;

方法调用传参

[someObject someMethodThatTakesABlock:^返回类型 (参数名) {代码段}];
//举例
[someObject someMethodThatTakesABlock:^NSString * (NSString *test) {NSLog(@"%@", test);}];

C函数参数

void SomeFunctionThatTakesABlock(返回类型 (^block名称)(参数名称列表));
//例子
void SomeFunctionThatTakesABlock(NSString * (^blockName)(NSString *)); 

类型定义

typedef 返回类型 (^Block类型名称)(参数类型列表);
Block类型名称 block名称 = ^返回类型(参数列表) {代码段};
//例子
typedef NSString * (^TypeName)(NSString *);
TypeName blockName = ^NSString *(NSString *test) {NSLog(@"%@", test);};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容