Block
什么是Block?
Blcok是ios4.0+和Mac OS X 10.6 引进队C语言的扩展,用来实现匿名函数的特征
block是C级别的匿名函数块,和C语言的函数指针很像,在ios4.0之后开始支持block在IOS开发中什么情况时有block?
在ios开发中什么情况时有block?
- 1.代码的封装
- 2.并发任务的执行
- 3.回调
block 块语法:
声明:
返回类型(^代码块名)(参数列表)
调用:
代码块名=^(参数列表){};
有参数有返回值:
block块的声明
int (^Sum)(int n1,int n2,int n3);
block块的实现
Sum = ^(int n1,int n2,int n3){
int max = n1;
if (n1 < n2)
{
max = n2;
}
if (n2 < n3)
{
max = n3;
}
return max;
};
调用:
int result = Sum(1,2,3);
无法返回值:
block声明:
void (^jack)(NSString *string);
block的实现:
jack = ^(NSString *string){
NSLog(@"%@",string);
};
调用:
jack(@"Rick");
无返回值和参数列表:
block声明:
void(^myBlockOne)();
block的实现:
myBlockOne=^()
{
num++;
NSLog(@"num=%d",num);
}
或
void(^myBlockOne)()=^()
{
num++;
NSLog(@"num=%d",num);
}
调用:
myBlockOne();