首页 > 代码库 > Block
Block
Block封装了一段代码,可以在任何时候执行
Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:
block是inling(内联函数)的,并且默认情况下它对局部变量是只读的
苹果官方建议尽量多用block,在多线程、异步任务、集合遍历、集合排序、动画转场用的很多。
一、block可以访问外面定义的局部变量。如果外部的变量用了__block关键字进行了声明,就可以在block内部修改这个变量。否则不能修改。
void test2() {
//__block有两个下划线。
__block int c = 20;
//声明了一个block变量。
MySum sum = ^(int a, int b) {
//如果外部的变量用了__block关键字进行了声明,就可以在block内部修改这个变量。否则不能修改。
c = 29;
//block可以访问外面定义的局部变量。
NSLog(@"%i",c);
return a + b;
};
NSLog(@"%i",sum(1,2));
}
Block
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。