黑马程序员_OC基础09_block

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

一、概念

block是一种基本数据类型

二、作用

block可以封装一段代码,在任何时候执行

三、使用方法

1、定义block

//定义一个返回值为int,带两个int参数的block
int (^MySum)(int, int) = ^(int a, int b) {
	return a+b;
};

// 定义一个返回值为空,没有行参的block
void (^myblock)() = ^(){
    NSLog(@"----------------");
};
// 如果block没有形参,可以省略后面的()
void (^myblock)() = ^{
    NSLog(@"----------------");
};

2、用typedef定义block类型

// 利用typedef定义block类型
typedef int (^MyBlock)(int, int);

// 以后就可以利用MyBlock这种类型来定义block变量
MyBlock b1, b2;
 
b1 = ^(int a, int b) {
   return a - b;
};
 
MyBlock b3 = ^(int a, int b) {
   return a - b;
};


四、注意点

1、block内部可以访问外部的局部变量,但默认情况下是不可修改的

2、如果要修改局部变量需要在变量前加上__block关键字(这里是两个_)



---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值