1、什么是Block?
① 块语法,本质上是匿名函数(没有名称的函数);
② Block是OC中的一种数据类型,在iOS开发中被广泛使用;
③ ^是Block的特有标记;
④ Block的实现代码包含在{}之间;
⑤ 大多情况下,以内联inline函数的方式被定义和使用;
⑥ Block与C语言的函数指针有些相似,但使用起来更加灵活;
示例:main.m文件中:
![](https://img.haomeiwen.com/i12593402/39a3382461928f1e.png)
控制台输出:
![](https://img.haomeiwen.com/i12593402/c42e79fda067c023.png)
2、Block变量存储的是什么?
简单地讲Block变量储存的是:函数的实现;
3.如何定义一个Block变量?如何给Block变量赋值.如现在有一个匿名函数int (NSString * a,int b)它的功能是将数字字符串a,转换为整型值,然后与b相加,返回和值。
示例:main.m文件中:
![](https://img.haomeiwen.com/i12593402/50c2d8964f42a0ab.png)
控制台输出:
![](https://img.haomeiwen.com/i12593402/b51228abb3b94c4b.png)
4.对于上题的匿名函数,如何通过block变量实现执行这个匿名函数。
示例:main.m文件中:
![](https://img.haomeiwen.com/i12593402/65a486664df3ed75.png)
5.在block中能修改局部变量的值吗?能修改全局变量的值吗?
①不能,需要在定义局部变量的时候加上_ _block;
②在block中可以直接修改全局变量。
6.创建3个学生对象,存放到数组中,如何通过block实现对该数组按照年龄降序排列。
示例:main.m文件中:
![](https://img.haomeiwen.com/i12593402/eaa02072e379faf9.png)
控制台输出:
![](https://img.haomeiwen.com/i12593402/9b4722131886a25c.png)
7、void (^myBlock)() = ^void(){ NSLog(@“Hello Lanou!”); }
其中:①block变量的类型是什么? ②block的变量名是什么? ③block变量存储的值的类型是什么?
答: ① void (^)() ② myBlock ③ ^void(){ NSLog(@“Hello Lanou!”); };
网友评论