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的更多相关文章

  1. 李洪强iOS开发之Block和协议

    李洪强iOS开发之Block和协议 OC语言BLOCK和协议 一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任 ...

  2. iOS开发之Block

    1.定义 (1) Block是OC中的一种数据类型,在iOS开发中被广泛使用 (2) ^是Block的特有标记 (3) Block的实现代码包含在{}之间 (4) 大多情况下,以内联inline函数的 ...

  3. IOS开发之block应用

    非常长时间都是在学习各位大神的力作,并汲取了不少养料,在此一并谢过各位大神了. 当然了.好东西是要跟大家一起分享的,近期发现了几个很不错的个人网站,都是介绍IOS开发的.当中有唐巧.破船之长.池建强. ...

  4. ios开发之block的使用,及注意事项

    转自:http://my.oschina.net/u/1432769/blog/390401 Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事.需要注意的是由于 ...

  5. iOS开发之block解析

    1. block的本质是一个Objective-C的对象,为什么这么说? 在Objective-C中,runtime会在执行时依据对象的isa指针的指向,来度额定这个对象的类型,也能够觉得一个对象,它 ...

  6. iOS 开发之 GCD 不同场景使用

    header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...

  7. iOS 开发之 GCD 基础

    header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...

  8. iOS开发之MVVM在项目中的应用

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  9. 李洪强iOS开发之RunLoop的原理和核心机制

    李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研 ...

随机推荐

  1. Html标签中Alt和Title都是提示性语言标签

    在Html标签中Alt和Title都是提示性语言标签,在我们浏览一些网页时,鼠标停留在一张图片或文字链接上时,在鼠标的右下角出现一个提示信息框,对目标进行一定的注释说明,这就是它们的作用.    其中 ...

  2. 如何在微软Hyper-V下发挥SQL Server最大功效

    要建设稳定运行的虚拟化SQL Server系统,关键是确保虚拟化管理软件配置能提供数据库所需的资源.SQL Server是CPU密集型技术,因此支撑它的虚拟机需要能获得充足的处理器资源,同时不能引起与 ...

  3. C#-WebForm-AJAX阿贾克斯(一)基本格式

    AJAX 即" Asynchronous Javascript And XML "(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异 ...

  4. 处理JSON格式的数据

    JSON格式的数据是最常用的数据格式,处理方法的选择就显得比较重要了.我常用的一种是用对象来接收,然后保存在数组中,需要时直接从数组中取值.下面列出一个小例子. .h文件中: #import < ...

  5. IOS开发中如何给UIImageView添加点击事件

    1.先创建一个UIImageView控件: photeImageView = [[UIImageView alloc]init]; photeImageView.frame = CGRectMake( ...

  6. HTML CSS基础(三)

    3种列表:有序列表.无序列表和定义列表 表1 3种列表记忆 标签 语义 说明 ol ordered list 有序列表 ul unordered list 无序列表 dl definition lis ...

  7. 2)Javascript设计模式:Singleton模式

    Singleton模式 var User = (function() { var instance; function _User(){} _User.prototype.say = function ...

  8. DataTabel DataSet 对象 转换成json

    public class DataTableConvertJson    { #region dataTable转换成Json格式        /// <summary>         ...

  9. UVa 10137 & ZOJ 1874 The Trip

    题目大意:n个学生去旅行,旅行中每个学生先垫付,最后平摊所有费用,多退少补,并且支出差距控制在1分钱以内,求最小的交易金额. @2013-8-16 以前在zoj做过,把原来的代码直接提交了,虽然AC了 ...

  10. PHP使用GD2库画图,图像无法输出解决方法

    在CS6编辑环境下,使用php的GD2库绘制图像,在浏览器上输出可能会出现图像无法输出的情况,目前发现两个解决方法:方法1:用记事本写,再另存为utf-8 no bom的格式. 方法2:在代码中添加o ...