iOS Block

首先,我们要知道Block是什么,Block是对象,是一组指令。它可以使开发更便捷,还可以提升app的执行效率。

Block对象融合了面向过程编程和面向对象编程的特点。它是一段可执行的代码,可以接受参数,也是一个对象,对象的内容就是一段可执行的代码,可以接受参数。

声明Block对象变量

因为是对象,所以我们可以使用指针指向Block对象。指向block对象的变量和其他变量一样,都有变量名和类型。相对比较而言,block变量的类型包含更多的元素,所以声明的语法也不一样。
int(^blockName)(int a,int b);
这个声明了一个名为blockName的Block变量。该变量有两个参数int a和int b,返回值是int。声明Block变量的时候,我们可以省略实参的名字,注意只有声明的时候可以省略,也就是说我们也可以这样声明Block变量 int(^blockName)(int,int)。下面多写几个Block变量熟悉一下。
void (^aaaaa)(void);
void(^bbbbb)(User *);
NSString *(^ccccc)(NSString *);

创建Block对象

创建Block对象的代码如下:
^int(int x,int y){
return x+y;
};
这种Block的定义语法称为(Block Literal)。现在我们来了解一下语法规则,就如你刚才看到的那个实现代码一样。首先是^字符,然后是返回类型,再然后是用括号包起来的参数,再然后里面是用大括号包起来的代码,再然后是标志代码结束的;号。这样一个完整的Block对象就算结束了。
通常情况下,我们可以将新创建的Block对象立即赋值给某个Block变量。就像NSString * name = @“aaaa”;一样
 int(^addBlock)(int ,int) = ^int(int x,int y){
return x+y;
};

使用Block对象

创建完Block之后就该使用了,当Block变量指向某个Block对象之后呢,我们可以像调用C函数那样调用Block变量。
例如调用上面我们声明的Block对象,可以这样写
int sum = addBlock(1,1);


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值