iOS 开发之Block
iOS 开发之Block
一:什么是Block。Block的作用
UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法。
1. 按钮事件 target action 机制。 它是将一个方法传入到一个按钮中
2. 试图表格,它里面有很多的事件机制 它是将一个self指针传入,实现回调机制中得方法。
3. Block 解决回调,理解为C语言中得函数,定义方法在里面
二:Block的基本使用
1. 定义Block变量
在这里只是简单的定义了带两个整形参数的Block变量
int (^add) (int x,int y)
2. 定义Block语句块
这是一个简单的代码块语句,在代码块语句的前面一定要加^符号
^int (int x,int y)
{
return x+y;
};
其实如果仔细看的话,在代码块的前面不加^符号的话,它很像C语言中的函数。
我们把代码块语句用一个代码块变量来接收了写成下面的格式
add=^int (int x,int y)
{
return x+y;
};
左后既然你创建了函数的话,你想实现它的话就得调用函数,有参数的就得传参数进去。
NSLog(@"%d", add(,));
这样我们就实现了简单的一个两数之和的计算
三: Block在开发中的应用
block变量的反向界面传值
首先一点就是,代码块的传递是通过方法进行的,所以在进行反向的界面传值的时候,你的把它写到方法里面传过去。
如果你了解反向传值的话,以前是通过代理来传值的。
我们把用Block变量反向传值和代理反向传值的过程做一个大概的比较,你就知道它的方便和好的地方了。
代理的大概过程;
1. 在第二个界面创建协议,代理。
2. 第一个界面遵守协议,遵守了代理的话就得实现它里面的方法
3. 实现协议的方法
4. 在第一界面里面在你要跳转到第二界面的地方指定代理者。
5. 最后你的在第二个界面去调用代理
Block变量的大概过程;
1. 在第二个界面里面写一个方法,把你要传递的值通过代码块的形式,写到方法的形参中去。
2. 在第一个界面跳到第二个界面时候,你创建了第二个界面的时候你就可以用你创建的第二个界面去调用你写的那个方法。
其实你一调用就已经把值传过来了,你就可以使用它了。
iOS 开发之Block的更多相关文章
- 李洪强iOS开发之Block和协议
李洪强iOS开发之Block和协议 OC语言BLOCK和协议 一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任 ...
- iOS开发之Block
1.定义 (1) Block是OC中的一种数据类型,在iOS开发中被广泛使用 (2) ^是Block的特有标记 (3) Block的实现代码包含在{}之间 (4) 大多情况下,以内联inline函数的 ...
- IOS开发之block应用
非常长时间都是在学习各位大神的力作,并汲取了不少养料,在此一并谢过各位大神了. 当然了.好东西是要跟大家一起分享的,近期发现了几个很不错的个人网站,都是介绍IOS开发的.当中有唐巧.破船之长.池建强. ...
- ios开发之block的使用,及注意事项
转自:http://my.oschina.net/u/1432769/blog/390401 Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事.需要注意的是由于 ...
- iOS开发之block解析
1. block的本质是一个Objective-C的对象,为什么这么说? 在Objective-C中,runtime会在执行时依据对象的isa指针的指向,来度额定这个对象的类型,也能够觉得一个对象,它 ...
- iOS 开发之 GCD 不同场景使用
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- iOS 开发之 GCD 基础
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- iOS开发之MVVM在项目中的应用
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- 李洪强iOS开发之RunLoop的原理和核心机制
李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研 ...
随机推荐
- js 设置导航固定
<div id="nav"> .... </div> function Add_Data() { var top = $("#header-nav ...
- radiobutton设置样式
单选题里会用到radiobutton,如果不想使用系统提供的圆圈样式,可以自定义样式,想要做成的效果就是, 使用自定义的图片替换圆圈,然后选择有4个选项的其中一个,图片上有个对勾标记, 然后如果正确选 ...
- Python twisted article
学习python twisted 的好文章 An Introduction to Asynchronous Programming and Twisted Reference: http://kron ...
- bzoj2120: 数颜色 &&bzoj2453: 维护队列
题目大意: 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A有时候会依据个人喜好 ...
- HUSTOJ 2796 && SPOJ1811
传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2796 题解:后缀自动机,很裸,但是感觉对后缀自动机还不是特别理解,毕竟我太蒟蒻,等我精通 ...
- 【Xilinx-VDMA模块学习】-01- VDMA IP的GUI配置介绍
使用的是Vivado 2015.4,XC7Z020, AXI Video Direct Memory Acess(6.2). 在我的系统中,GUI配置图片如下:(其实和默认配置没有太大区别) 下面介绍 ...
- CocoaPods ReactiveCocoa 学习实践一 之 配置环境
1.安装CocoaPods 1.00.参考 CocoaPods 文档 1.01.是否已安装 which pod 1.1.升级gem命令 sudo gem update --system 1.2.切换C ...
- 一个完整的PHP类包含的七种语法说明
类中的七种语法说明 -属性 -静态属性 -方法 -静态方法 -类常量 -构造函数 -析构函数 <?php class Student { // 类里的属性.方法和函数的访问权限有 (函数和方法是 ...
- JavaScript对象属性的基础教程指南
JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...
- Linux在线安装git(亲测成功)
一.先检测是否已安装 安装git需要安装一些依赖,但是安装依赖之前需要先检测一下是否已经安装了git. rpm -qa | grep zlib-devel 二.具体安装命令 如果以前没有安装过,则下载 ...