·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> block的初识
Block是iOS4.0之后新增的一种语法结构,也称为“闭包(closure)”。
SDK4.0新增的API大量使用了Block。
Block是一个匿名的函数代码块,此代码块可以作为参数传递给其他对象。
对象
方法{
block块{
...代码
};
}
//定义类型,定义变量
int(^sum)(int a, int b );
//实现block
sum = ^(int a, int b){
return a+b;
};
//1直接调用
int sum1 = ^(int a,int b){
return a+b;
}(5,9);
NSLog(@"%d",sum1);
//2通过block变量调用
int sum2 = sum (20,39);
NSLog(@"%d",sum2);
- (void)creatkindsofBlock{
//1---无参数,无返回值
^(){
NSLog(@"无参数,无返回值");
}();
//2---有参数,无返回值
^(int a,NSString *text){
NSLog(@"%d, %@",a,text);
}(88,@"有参数,无返回值");
//3---无参数,有返回值
NSString *text = ^(){
return @"有返回值,无参数";
}();
NSLog(@"%@",text);
//4---有参数,有返回值
}
首先定义一个全局的block
{
int(^myBlock)(int a, int b);
}
#pragma mark - 全局block变量
-(void)createMyBlock{
//定义block变量
int(^sumBlock)(int x,int y);
//实现block,并且赋值
sumBlock = ^(int x,int y){
return x+y;
};
//直接赋值,block变量可以直接赋值
myBlock = sumBlock;
}
****全局block可以直接调用,直接赋值
//全局block变量
[self createMyBlock];
NSLog(@"sum :%d",myBlock(20,60));
当然block的初步认识里还应该有block的应用场景,block和变量,block的内存管理一些问题,我就不写了😅。 因为本人是个小菜鸟~,所以啦,我还要去写作业做练习,麻烦各位不要吐槽,多多鼓励,谢谢。 希望对和我一样刚开始学习ios的同学们有一点点帮助,总结的不是很好,如有错误,请一定指正,我会虚心向您学习。。