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){}等来接。

最新文章

  1. [翻译]通过使用正确的search arguments来提高SQL Server数据库的性能
  2. [转]java selenium webdriver实战 应用小结
  3. 华盛顿大学 Programming Languages
  4. 高尔夫管理系统SSH
  5. CSS光标cursor
  6. 根据商品名称、价格区间检索商品的SQL语句
  7. leetcode-188 买卖股票4
  8. 利用ClouderaManager启动HBase时,出现 master.TableNamespaceManager: Namespace table not found. Creating...
  9. RxJava基本流程和lift源码分析
  10. grunt &lt;% %&gt;模板和使用配置文件
  11. Object-C Dealloc
  12. Java基础知识强化09:String、StringBuffer和StringBuilder使用
  13. Nginx学习之一-第一个程序Hello World
  14. 基于模糊Choquet积分的目标检测算法
  15. Angular2.0的项目架构
  16. sqlite ef6 踩坑
  17. [Python Study Notes]实现对鼠标控制
  18. Unity3D学习(一):简单梳理下Unity跨平台的机制原理
  19. JS学习笔记Day12
  20. springboot整合JPA(简单整理,待续---)

热门文章

  1. Appium移动自动化测试之Java篇
  2. Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统
  3. html5调取手机摄像头或相册
  4. Codeforces 586D. Phillip and Trains 搜索
  5. Java中四种引用:强、软、弱、虚引用
  6. 我开发的SNMP编译器和浏览器
  7. css中图片等比例缩放
  8. Config文件的读写
  9. 在线编辑器的使用-KindEditor
  10. 拼sql条件时判断 是不是当前时间是不是周五,如果今天不是周五,就选上周五