iOS开发--Block
2024-08-27 10:56:23
iOS开发--Block
1.什么是Block,block 的作用
ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理
(1)按钮 target-action 一个方法传入按钮
(2)表格视图 传入指针 self,回调视图控制器中的方法
(3)block 语句块。解决回调,理解为匿名函数,定义在方法里面
2.block的基本使用(语法)
block类型的变量
void (^block名称)(带参数)----参数可为0,1,2。。。。。
定义一个Block的变量
-----
void(^block)();
定义block语句块
block= ^void ()
{
NSLog( @"i am block");
};
block参数和返回值
block捕获外部变量
block注意事项
----很多时候,为强引用可能做成循环引用,这时可用
__weak typeof(self) weakSelf = self;
定义一个弱引用的weakSelf来处理事件。
3.block在开发中应用(oc,ui,网络)
1.返回数据
在第二个页面中,定义Block,并在特定的事件中添加Block。
@property (copy,nonatomic) void (^changeCategory)(NSString *categoryId);
在特定的代码中,加入 if (self.changeCategory) {
self.changeCategory(model.categoryId);
}
在第一个页面中,执行第二个页面传过来的方法。
在第一个页面中,进入第二个页面的地方,加入
[second setChangeCategory:^(NSString *cate) {
_page =;
_catagoryId = cate;
//通过传递的数据,执行方法
[self startDownLoadData:_catagoryId];
}];
2.常用Block函数的使用
[UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>];
第一个参数的时间,第二个参数的执行的动作,比如设置变大
view.frame= cgrectmake(x,y,w,h);
动画变换
view.transform = CGAffineTransformMakeRotation(M_1_PI);
第三个参数的执行后的动作,可用用nil ,^{},^(BOOL finished){}等来接。
最新文章
- [翻译]通过使用正确的search arguments来提高SQL Server数据库的性能
- [转]java selenium webdriver实战 应用小结
- 华盛顿大学 Programming Languages
- 高尔夫管理系统SSH
- CSS光标cursor
- 根据商品名称、价格区间检索商品的SQL语句
- leetcode-188 买卖股票4
- 利用ClouderaManager启动HBase时,出现 master.TableNamespaceManager: Namespace table not found. Creating...
- RxJava基本流程和lift源码分析
- grunt <;% %>;模板和使用配置文件
- Object-C Dealloc
- Java基础知识强化09:String、StringBuffer和StringBuilder使用
- Nginx学习之一-第一个程序Hello World
- 基于模糊Choquet积分的目标检测算法
- Angular2.0的项目架构
- sqlite ef6 踩坑
- [Python Study Notes]实现对鼠标控制
- Unity3D学习(一):简单梳理下Unity跨平台的机制原理
- JS学习笔记Day12
- springboot整合JPA(简单整理,待续---)