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(3,4));

   这样我们就实现了简单的一个两数之和的计算

  三:  Block在开发中的应用

          block变量的反向界面传值

          首先一点就是,代码块的传递是通过方法进行的,所以在进行反向的界面传值的时候,你的把它写到方法里面传过去。

如果你了解反向传值的话,以前是通过代理来传值的。

           我们把用Block变量反向传值和代理反向传值的过程做一个大概的比较,你就知道它的方便和好的地方了。

           代理的大概过程;

           1.    在第二个界面创建协议,代理。

           2.    第一个界面遵守协议,遵守了代理的话就得实现它里面的方法

           3.    实现协议的方法

           4.    在第一界面里面在你要跳转到第二界面的地方指定代理者。

           5.    最后你的在第二个界面去调用代理

           Block变量的大概过程;

           1.    在第二个界面里面写一个方法,把你要传递的值通过代码块的形式,写到方法的形参中去。

           2.    在第一个界面跳到第二个界面时候,你创建了第二个界面的时候你就可以用你创建的第二个界面去调用你写的那个方法。

    其实你一调用就已经把值传过来了,你就可以使用它了。

原文地址:https://www.cnblogs.com/zhangxiaoxu/p/4397697.html