首页 > 代码库 > block的基本使用

block的基本使用

block用来保存一段代码

block的标志:^

 

block跟函数很像:

1. 可以保存代码

2. 有返回值

3. 有形参

4. 调用方式一样

 

定义bolock变量

1

void (^myBlock)() = ^{

      NSLog(@“———————“);

};

利用block变量调用block内部的代码

myblock();

2

//  如果block没有形参,可以省略后面的()

int (^sumBlock)(int, int) = ^(int a, int b){  

     return a + b;

};

调用block

int c = sumBlock(10, 11);

或者:

int (^sumBlock)(int, int);

sumBlock = ^(int a, int b) {

      return a + b;

};

3

void (^lineBlock)(int) = ^(int n)

{

       for (int i = 0; i<n; i++) {

            NSLog(@“——————“);

       }

};

调用:

lineBlock(5);

 

 

blocky要掌握的东西

1>  如何定义block变量

int (^sumBlock)(int, int);

void (^myBlock)();

2>  如何利用block封装代码

^(int a, int b) {

    return a - b;

};

 

^() {

    NSLog(@“————“);

};

 

^ {

     NSLog(@“————“);

};

 

3>  block访问外面变量

block内部可以访问外面的变量

默认情况下,block内部不能修改外面的局部变量

给局部变量加上_block关键字,这个局部变量就可以在block内部修改

 

4>  利用typedef定义block类型

typedef int (^MyBlock)(int, int);

以后就可以利用MyBlock这种类型来定义block变量

MyBlock block;

MyBlock b1, b2;

 

b1 = ^(int a, int b) {

     return a - b;

};

 

MyBlock b3 = ^(int a, int b) {

       return a - b;

};

block的基本使用