IOS block简单讲解
1、block 定义及调用
block定义
int (^sum) (int a,int b)=^(int a,int b)
{
return a+b;
};
返回类型 (^blockName) (参数类型 参数1,参数类型 参数2)=^(参数类型 参数1,参数类型 参数2)
{
return 返回类型;
};
调用block
int n;
n=sum(10,15);
NSLog(@”a+b=%i”,n);
2、 typedef定义block
typedef int (^MySum) (int,int);
typedef 返回类型(^名称)(参数类型,参数类型);
block调用
MySum sum;
sum=^(int a,int b)
{
return a+b;
};
3、block可以访问外部变量
int a=5;
sum=^(int a,int b)
{
NSLog(@" %i",a);
a=7;这句话会报错
return a+b;
};
这种情况不能修改变量a的值
如果想在block里修改变量值,在定义变量a时应该这样:
__block int a=5;//__block两个下划线
sum=^(int a,int b)
{
NSLog(@" %i",a);
a=7;编译通过
return a+b;
};
还没有评论,来说两句吧...