block的初识

block的介绍

Block是iOS4.0之后新增的一种语法结构,也称为“闭包(closure)”。

SDK4.0新增的API大量使用了Block。  

Block是一个匿名的函数代码块,此代码块可以作为参数传递给其他对象。

   

 

  对象

方法{

      block块{

       ...代码

      };

 

Block的使用:

1.block的声明

   //定义类型,定义变量

    int(^sum)(int a, int b );

 

2.block的创建

 

 

  //实现block

 

    sum = ^(int a, int b){

 

        return a+b;

 

    };

 

 

 

3.block的调用

    

   //1直接调用

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

        return a+b;

    }(5,9);

    NSLog(@"%d",sum1);

    

    //2通过block变量调用

    int sum2 = sum (20,39);

    NSLog(@"%d",sum2);

    

4.多种情况下的block

#pragma mark creatkindsofBlock

 

- (void)creatkindsofBlock{

 

    //1---无参数,无返回值

    ^(){

        NSLog(@"无参数,无返回值");

    }();

    

    //2---有参数,无返回值

    ^(int a,NSString *text){

        NSLog(@"%d, %@",a,text);

    }(88,@"有参数,无返回值");

    

    //3---无参数,有返回值

    NSString *text = ^(){

        return @"有返回值,无参数";

    }();

    NSLog(@"%@",text);

    

    //4---有参数,有返回值

 

}

 

5.全局block变量

首先定义一个全局的block

{

    int(^myBlock)(int a, int b);

}

 

#pragma mark - 全局block变量

-(void)createMyBlock{

    

    //定义block变量

    int(^sumBlock)(int x,int y);

    //实现block,并且赋值

    sumBlock = ^(int x,int y){

        return x+y;

    };

    

    //直接赋值,block变量可以直接赋值

    myBlock = sumBlock;

}

 ****全局block可以直接调用,直接赋值

    //全局block变量

    [self createMyBlock];

    NSLog(@"sum :%d",myBlock(20,60));

 

当然block的初步认识里还应该有block的应用场景,block和变量,block的内存管理一些问题,我就不写了?。
因为本人是个小菜鸟~,所以啦,我还要去写作业做练习,麻烦各位不要吐槽,多多鼓励,谢谢。
希望对和我一样刚开始学习ios的同学们有一点点帮助,总结的不是很好,如有错误,请一定指正,我会虚心向您学习。。

 

转载于:https://www.cnblogs.com/wenqingdan-1207/p/4744457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值