iOS开发--Block
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){}等来接。
iOS开发--Block的更多相关文章
- iOS开发——Block详解
iOS开发--Block详解 1. Block是什么 代码块 匿名函数 闭包--能够读取其他函数内部变量的函数 函数变量 实现基于指针和函数指针 实现回调的机制 Block是一个非常有特色的语法,它可 ...
- ios开发 block语句块
ios开发 block语句块 1.block 理解为匿名函数 2.block变量的定义 //定义block变量,^表示定义block //技巧:函数名左右加括号,在函数名前面在加^ void (^bl ...
- iOS开发-Block回调
关于Block之前有一篇文章已经写过一篇文章Object-C-代码块Block回顾,不过写的比较浅显,不能体现出Block在实际开发中的重要性,关于Block的基础知识,可以参考之前的博客.在实际开发 ...
- iOS开发Block的使用
Block 是从 iOS4引入的,在日常开发中,会经常用到Block.特别是在多线程中,Block的用处更广泛.而且,Block不仅可以接收参数,其本身也可以作为参数,因此,Block的功能非常强大. ...
- IOS开发 Block的学习
苹果公司正在大力推广Block块语法的使用,据说Block会迟早取代一般协议代理的使用. Block最大的作用是函数回调,简化代码. 在ios中,将blocks当成对象来处理,它封装了一段代码,这段代 ...
- iOS开发-block使用与多线程
Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值. 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历. ...
- iOS开发 -------- Block技术中的weak - strong
一 Block是什么? 我们使用^运算符来声明一个Block变量,而且在声明完一个Block变量后要像声明普通变量一样,后面要加; 声明Block变量 int (^block)(int) = NULL ...
- IOS开发Block详细用法
Block简介: ios4.0系统已开始支持block,在编程过程中,blocks被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数 ...
- iOS开发——Block使用小结
Block语法看上去好像很特别,但它实际上是作为极普通的C语言源代码处理的.Block的实质,就是Objective-C的对象. 1.Block的语法 ^ 返回值类型 参数列表 表达式 可省略返回值类 ...
随机推荐
- JQuery源码解析--callbacks
(function (global, factory) { factory(global); })(this, function (window, noGlobal) { var rootjQuery ...
- python学习之——django环境搭建
Django是一个基于MVC构造的框架,用于web开发,主要目的是简便.快速的开发数据库驱动的网站. 前提:已经安装python 搭建步骤: 1.https://www.djangoproject.c ...
- easyui的getRows和appendRow方法使用结果记录
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Smali语法编程
Smali背景: Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器.其语法是一种宽松式的Jasmin/dedexer语法,而 ...
- XHTML标签的嵌套规则分析
在 XHTML 的语言里,我们都知道:ul 标签包含着 li.dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确.但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1.div. ...
- linux下的redis安装以及php添加redis扩展
一.redis的安装 win版本详见: 下面是linux版本的安装步骤: step1.下载 http://redis.io/download下载完后直接make然后make install,注意sud ...
- Web程序的运行原理及流程(一)
自己做Web程序的开发也有两年多了 从最开始跟风学框架 到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来 我当时第一次做WEB项目看 ...
- oracle 秒
select case when deptno=10 then 'aaaa' when deptno=20 then 'bbbb' when deptno=30 then 'cccc' e ...
- oracle创建用户并导入dmp文件
SQL命令行执行以下命令:SQL> conn sys/111111 as sysdba; SQL> CREATE USER TEST11 IDENTIFIED BY "11111 ...
- map阶段动态获取CombineTextInputFormat各输入文件路径
老mr程序中map中conf的map.input.file参数只能获取获取CombineTextInputFormat的第一个输入文件,而新版mr程序则连第一个输入文件也无法获取,这是因为create ...