黑马训练营---block
来源:互联网 发布:亲朋棋牌刷金币软件 编辑:程序博客网 时间:2024/05/26 19:20
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1.介绍
1.block封装了一段代码,可以在任何时候执行。学过java的朋友会觉得这个很像java的匿名函数,js的闭包。
// 如何定义block变量 int (^sumBlock)(int, int);
2.block可以作为函数参数或者是函数的返回值,block本身也可以带参数和返回值和函数很像。
共同点:保存代码,有返回值,有形参数,相同的调用方式
- (void)btnClickWithBlock:(void (^)())block
{
// 0.动画(头部-开始动画)
[UIViewbeginAnimations:nilcontext:nil];
//设置动画的执行时间
[UIViewsetAnimationDuration:1.0];
//block作为函数参数
block();
// 1.动画(尾部-提交动画-执行动画)
[UIViewcommitAnimations];
}
3.在多线程,异步任务,集合遍历,集合排序用的很多。
2.使用注意
1.block可以访问局部变量,但是不能修改。
2.如果真的要修改的话,请在变量的声明前加上关键字__block。
__block int b = 20;
3.block使用
//1.定义block变量 int (^sumBlock)(int, int); void (^myBlock)(); //2.利用block封装代码 ^(int a, int b) { return a - b; }; //3.利用typedef定义block类型 MyBlock block; block = ^(int a, int b) { return a - b; }; int a = 10; __block int b = 20; void (^block)(); block = ^{ // block内部可以访问外面的变量 // NSLog(@"a = %d", a); // 默认情况下,block内部不能修改外面的局部变量 // a = 20; // 给局部变量加上__block关键字,这个局部变量就可以在block内部修改 b = 25; }; block();
0 0
- 黑马训练营---block
- 黑马程序员-oc-Block
- 黑马程序员---oc block
- 黑马程序员-OC语言Block
- 黑马训练营---NSArray,NSMutableArray
- 黑马训练营---NSDictionary和NSMutableDictionary
- 黑马程序员---block学习日记
- 黑马程序员-IOS开发之--block,协议
- 黑马程序员 委托模式--类别、协议、Block篇
- 黑马程序员--11OC Block && protocol
- 黑马训练营---NSArray NSString NSRange NSFileManager综合使用
- 黑马训练营
- 黑马程序员训练营
- 黑马程序员训练营
- 黑马训练营 ---------多线程
- 黑马训练营 -----------------注解
- 黑马训练营 -------------------------反射
- 黑马训练营 ----------- 枚举
- 我的学习之旅(27)io.h
- Linux poll机制精彩分析
- Android自动化测试:获取当前前台应用的Activity名字
- android studio 用release签名进行debug
- Windows内核对象句柄的继承小总结
- 黑马训练营---block
- 01、c++ primer 之 const
- Java:应用Observer接口实践Observer模式
- Outlook收到.exe,.com等扩展名的附件不显示如何解决
- Android二维码功能实现,在程序内嵌入ZXing项目
- Docker集中化web界面管理平台shipyard
- 学这么多,边学边忘怎么办?
- jQuery的deferred对象详解
- 正则表达式总结