美文网首页
简单的链式编程demo

简单的链式编程demo

作者: KevinChein | 来源:发表于2018-04-11 19:30 被阅读3次
#import <Foundation/Foundation.h>
#import "CalculateManager.h"

@interface NSObject (Calculate)
/*
 方法设计:自己框架,最好添加一个方法前缀
 */

// 把所有的计算代码放在这里--  聚合代码
+ (int)www_makeCalculate:(void(^)(CalculateManager *manager))block;
@end
#import "NSObject+Calculate.h"

@implementation NSObject (Calculate)
+ (int)www_makeCalculate:(void (^)(CalculateManager *manager))block {
    NSLog(@"%s",__func__);
    CalculateManager *mgr = [[CalculateManager alloc] init];
    block(mgr);
    return mgr.result;
}
@end

#import "CalculateManager.h"

@implementation CalculateManager
- (CalculateManager *(^)(int value))add {
    NSLog(@"%s",__func__);
    __weak typeof(self) weakSelf = self;

    return ^(int value2){
        NSLog(@"value2---%s",__func__);
        weakSelf.result += value2;
        return weakSelf;
    };
}
@end

#import "ViewController.h"
#import "NSObject+Calculate.h"

@interface ViewController ()

@end

@implementation ViewController
/**
 *  +[NSObject(Calculate) www_makeCalculate:]
 *  [ViewController viewDidLoad]_block_invoke
 *  -[CalculateManager add]
 *  [CalculateManager add]_block_invoke
 *  执行顺序--
    1.www_makeCalculate方法执行后去调用 ViewController中写入该方法中的block
    2.执行www_makeCalculate方法的block
    3.调用add方法(实际就是调用add方法中return的block,该block的传参在ViewController中传值)
    4.执行add方法中的block
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    int result = [NSObject www_makeCalculate:^(CalculateManager *manager) {
        NSLog(@"%s",__func__);
        manager.add(5);
    }];
    NSLog(@"%i",result);
}

相关文章

  • 简单的链式编程demo

  • 实用工厂模式+链式编程 快速生成UI控件 iOS

    承接上一篇说的链式编程,上一篇:实用链式编程演示,这里我们补充一个链式编程正式的Demo,可以直接拖到项目中使用,...

  • iOS 链式编程

    之前看到 Masonry 是使用链式编程,感觉很酷,自己简单的写了一个链式编程的示例! 首先简单的来说一下链式编程...

  • iOS 链式编程简单的使用

    iOS 链式编程简单的使用 链式编程-顾名思义,链式,连贯性为其主要特征,放在编程领域来讲,说简单点就是把一系列的...

  • ReactiveCocoa综合

    最终诉求 整理层次结构,一个理论一个demo,链式编程、响应式编程、RAC内部原理、编程思想、RAC梳理直播逻辑、...

  • 关于链式编程的理解:常看牢记

    模拟Masonry的链式编程,形式如: 思想(简单理解):

  • jQuery 链式编程

    jQuery 链式编程 链式编程原理 链式编程代码示例 隐式迭代

  • 链式编程思想

    链式编程思想 链式编程思想

  • iOS 链式编程

    链式编程 主要介绍链式编程原理,以及如何创建链式编程 编程范式 在介绍链式编程之前,首先来了解下什么是编程范式。 ...

  • 链式编程的简单使用

    简单使用链式编程来设置UIButton的一些内容: 链式编程调用的点语法,本质也是调用方法,下面方法也可写成btn...

网友评论

      本文标题:简单的链式编程demo

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