block之--- 基本使用

block的类型:对象

  • 官方文档描述如下 “Blocks are Objective-C objects, which means they can be added to collections like NSArray or NSDictionary”

block的作用:

用来保存某一段代码, 并不是马上执行,需要手动调用

block的定义

返回值类型 (^block变量名)(形参列表) = ^返回值类型(形参列表) {

};

1.不带参数和返回值
void (^block名)() = ^{代码块;}

例如:
void (^myBlock)() = ^{ NSLog(@"YMF"); };
2.带参数和返回值
返回类型 (^block名称)(参数列表)
= ^ (参数列表) { // 代码实现; }

例如:
int (^myBlock)(int, int) = ^(int num1, int num2){ return num1 + num2; };
3.block的其他定义方式

定义一: 等号右边: ^返回值(){};

void(^block1)() = ^void(){

    };

定义二: 定义block,不管有没有返回值都可以省略,如果有返回值,在代码块中一定要记得return。

    int(^block2)() = ^(){

        return 1;
    };

非常规定义,声明时不声明参数,定义时传入参数

int (^block)() = ^(int num1, int num2) {

        int num = num1 +num2;
        NSLog(@"block --%d",num);
        return num;
    };
4.block的调用
block变量名(实参);

block代码的快捷键:inlineBlock

原文地址:https://www.cnblogs.com/mengfei90/p/5145790.html