美文网首页
iOS-链式编程

iOS-链式编程

作者: 小米咸鱼 | 来源:发表于2019-02-26 22:30 被阅读0次

函数式编程------->链式编程

函数式编程:

#import "Person.h"

@implementation Person

- (void)eat:(NSString*)doSomething{
    NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
}

- (void)run:(NSString*)doSomething{
    NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
}

调用方式

Person* person = [Person new];
[person eat:@"fish"];
[person run:@"10km"];

我们最终目的是将函数式编程转换为链式编程:
首先将调用方式转换为

[[person eat:@"fish"] run:@"10km"];

要想调用完eat函数后继续调用run函数,则eat函数需返回当前对象。
修改后函数:

- (Person* )eat:(NSString*)doSomething{
    NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
    return self;
}

- (Person* )run:(NSString*)doSomething{
    NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
    return self;
}

此时仍为函数式调用
下一步将函数式转换为链式,如何采用()的方式传参,需要使用OC中block,点语法返回需要调用的block,调用时即可采用()方式传参。同时设置block的返回值为当前对象,即可实现链式编程。

#import <Foundation/Foundation.h>
@class Person;
typedef Person* (^RunBlock) (NSString* doSomething);

@interface Person : NSObject

- (RunBlock)eat;
- (RunBlock)run;
@end
#import "Person.h"

@implementation Person

- (RunBlock)eat{
    RunBlock block = ^(NSString* doSomething){
        NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
        return self;
    };
    return block;
}

- (RunBlock)run{
    RunBlock block = ^(NSString* doSomething){
        NSLog(@"Today %@ %@",NSStringFromSelector(_cmd),doSomething);
        return self;
    };
    return block;
}
@end

调用方法

person.eat(@"fish").run(@"10km");

相关文章

  • iOS-链式编程

    函数式编程------->链式编程 函数式编程: 调用方式 我们最终目的是将函数式编程转换为链式编程:首先将调用方...

  • iOS-链式编程思想

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • jQuery 链式编程

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

  • 链式编程思想

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

  • iOS 链式编程

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

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • 一、链式编程思想、响应式编程思想和函数式编程

    1. 链式编程思想 链式编程思想的核心就是方法的返回值必须是Block,Masonry是链式编程思想应用的代表。 ...

  • 链式编程和函数式编程的简单理解

    链式编程 此前看到SnipKit中运用了很多链式编程的代码,感觉非常好用:例如: //此段就是链式编程的典型代码m...

  • 编程思想-链式编程

    编程思想-链式编程 链式编程(链式调用)的主要表现是支持点语法结构的代码,代表库可以参照 Masonry 或 Sn...

网友评论

      本文标题:iOS-链式编程

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