首先说明一下,我自己也是一个小白;这是我对block的一点认识或总结,有不对的地方,希望大家指出来
block就是一个代码块,用来执行一小段程序的,
通常我们定义一个block 可以用它的基本模型,返回值类型(^变量的名字)参数类型
例如: int (^myBlock)(int ); 这就是定义了一个block 这个变量的名字为myBlock 就像是 int i;(类比有利于理解)
当我们定义完block之后,我们应该实体化它,。就像是我们定义完int i; 我们要给int i 赋值, (其实实体化,就相当于写C语言的函数,他可能有输入参数,要求我们在{}里面来实现一些我们的逻辑)
int (^myBlock)(int);
myBlock = ^(int i){
return i;
};
NSLog(@"%d",myBlock(5));
当然我们也可以定义的时候直接赋值
int (^myBlock)(int) = ^(int i){
return i;
};
NSLog(@"%d",myBlock(5));
这样所达到的效果是一样的。就像我们可以先定义一个变量 int i;i = 5;我们也可以定义的时候初始化 int i = 5;
这样我们就拥有了一个block 类型的变量了,接下来我们我们可以使用block了