1.Block
Block封装了一段代码,可以在任何时候执行。
Block可以作为函数的参数,或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对具备变量是可读的。
苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场的很多。
2.Block的使用
方法一:
1.定义block,这个block相当于函数
//返回类型(^Block名称)(参数)
int (^Sum) (int, int) = ^(int a,int b){
return a + b;
};
2.调用代码块
int a = Sum(10,11);
NSLog(@"%i",a);
方法二:
1.定义一个block类型
typedef int (^MySum) (int, int);
2.声明了一个block变量
//使用__block关键字,可以使block改变该变量
__block int c = 15;
MySum sum = ^(int a,int b)
{
//可以访问局部变量,但是默认情况下,不可以修改
c = 19;
NSLog(@"c is %i",c);
return a+b;
};
NSLog("%i",sum(10,10));
3.Block的注意
Block可以访问局部变量,但是默认情况下不能修该。
Block在iOS开发中的应用
本文介绍了Block的概念及其在iOS开发中的使用方法。Block是一种封装代码片段的方式,它可以作为函数参数或返回值,并能访问外部作用域内的变量。文中通过两个示例详细展示了Block的定义与调用过程。
457

被折叠的 条评论
为什么被折叠?



