美文网首页
block开发使用场景

block开发使用场景

作者: cong_cong聪 | 来源:发表于2016-11-27 23:10 被阅读0次
  • block传值

利用block去代理代理传值
1. 代理传值
点击当前控制器Viewcontroller利用modal跳转的方式跳转到ModalViewController,再点击ModalViewController向Viewcontroller传值进行打印输出.
创建ModalViewController并设置代理协议
点击ModalViewController的时候让代理去传值
在Viewcontroller里面遵守代理协议并实现代理方法
2. block传值
在ModalViewController.h文件里面定义一个带参数的block属性
在ModalViewController.m文件里传值给ViewController
在ViewController里面给block赋值

这样就完成了block代理代理的方式进行逆向传值,由此可以,利用block代码会简便许多

  • block作为函数的参数使用

作为参数的block什么时候调用?

  • 当成参数的block并不是立即调用,而是由方法的内部决定,不用外界干预.

什么时候把block设计成参数?

  • 做的事情由外界决定,什么时候做由方法内部决定.

下面用block作为参数实现一个简单计算器

  • 创建计算器管理者类CalculatorManager。在.h中声明:
//保存计算结果
@property(nonatomic,assign)NSInteger result;

//计算方法,接收一个结果参数,将计算后的新的结果值返回出去
- (void)Cacultor:(NSInteger(^)(NSInteger result))cacultorBlock;
  • 在.m中实现如下
- (void)Cacultor:(NSInteger (^)(NSInteger))cacultorBlock{
    
    if (cacultorBlock) {
        
        _result = cacultorBlock(_result);
    }
}
  • 在窗口的根控制器的viewDidLoad中使用如下:
  • 打印结果是121


  • block作为函数的返回值使用

  • block作为函数的返回值目的是替代放大,并且封装block的内部实现

  • 主要体现是的一种链式编程思想,把所有语句用点号连接起来,代码的可读性非常好

下面同样封装一个简单计算器,提供一个加号方法

  • 首先同样创建计算器管理者类CalculatorManager。在.h中声明
  • 然后在.m中实现
  • 在窗口的根控制器的viewDidLoad中使用如下:

相关文章

  • block开发中使用场景

    block 开发中使用场景 适合新手理解 熟悉 运用到项目中 block开发中使用场景 1.把block保存到对象...

  • block开发使用场景

    block传值 利用block去代理代理传值 1. 代理传值 点击当前控制器Viewcontroller利用mod...

  • Block的三种应用场景

    block开发中使用场景1.把block保存到对象中,恰当的时候才去调用2.把block当做方法的参数使用,外界不...

  • Block开发中使用场景

    block开发中使用场景 1.把block保存到对象中,恰当时机的时候才去调用 2.把block当做方法的参数使用...

  • Objc Block实现分析

    Objc Block实现分析 Block在iOS开发中使用的频率是很高的,使用的场景包括接口异步数据的回调(AFN...

  • iOS开发 多视角抛析匿名函数—— Block

    一.Block的基本使用1.概念在iOS开发中Block的使用随处可见,使用场景也非常多,例如在网络中进行网络请求...

  • Block开发中使用场景

    小技巧:block的书写格式的快捷方式,可直接敲inlineBlock,如下图: 一、block的声明、定义 如果...

  • Block开发使用场景(传值)

    通常我们传值分为顺传和逆传:顺传:给需要传值的对象定义属性来传值。逆传:代理, 通知,单例,block等。此篇文章...

  • Block开发使用场景(保存代码)

    在上篇Block的基本使用文章中, 首先说明了Block的作用,用于保存代码。 在我们现实开发中,个人中心模块是A...

  • block开发中的使用场景

    block声明定义快捷键:inlineblock block作用:帮你保存一份代码,等到恰当的时机才调用。 blo...

网友评论

      本文标题:block开发使用场景

      本文链接:https://www.haomeiwen.com/subject/qrlnpttx.html