楼主摘抄了网上的一些楼主觉得还不错的问题。
什么是Block?
简单来说,Block其实就是一个代码块,把你想要执行的代码封装在代码里,等到需要的时候再去调用。
(block在定义时并不会执行内部的代码,只有在调用的时候才会执行)。
Block和普通函数有什么区别?
Block:是一个函数对象,是在程序运行过程中产生的;
普通函数:是一段固定代码,产生于编译期。
Block的定义?
下面正式开始:
首先我们来看Block的声明:
首先我们先分析一下情况,返回值,参数。详情见下图:
接下来我们来看看Block的变量赋值:
再接下来我们进行声明Block的变量的同时并进行赋值。
看到这里大家肯定都会声明和赋值了。然后我们看看最后的调用。
针对Block的说明:
1.Block的声明与赋值只是保存了一段代码,必须调用才执行内部代码。
2.^被称作"脱字符"。
3.:形参变量名称可以省略,只留有变量类型就好了。
4.Block变量的赋值格式可以是: Block变量 = ^返回值类型(参数列表){函数体};,不过通常情况下都将返回值类型省略,因为编译器可以从存储代码块的变量中确定返回值的类型。
针对Block的声明在OC中是有一个typedef可以定义Block类型的。
typedef的作用是重命名,这样的话写起来就特别简单了。详情见下图:
目前暂时先写到这里,下次再继续补。