美文网首页链式编程
iOS-链式编程思想

iOS-链式编程思想

作者: 顶级蜗牛 | 来源:发表于2017-08-17 10:03 被阅读86次

在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率,并且代码直观易读。

iOS中链式编程中最经典的例子是Masonry为代表的代码形式,代码如下:

make.top.left.equalTo(@20);

我们知道OC的点语法实际上就是调用getter/setter方法,能实现这种链式最根本的原因是每次使用调用getter方法的时候的返回值实际上就是对象本身,这样我们就能一直使用该对象一直使用点语法去调用。

Swift和OC的写法是有区别:

Swift是直接返回对象本身,如:

func name(_ name: String) -> Person {}

OC 是返回一个 返回值为对象本身的 Block,如:

- (Person * (^)(NSString *))name;

造成这种差别的原因是:

1.Swift中的点语法是可以直接用来使用方法的。

2.OC中的点语法实际就是一个 getter/setter 方法,使用点语法,那么相当于使用 getter/setter 方法获取属性,因此采用和Swift类似的方法的话,只能用 [ ] 来调用,那么他的链式就表现为

[[[person name(@"Lily")] sex(@"men")] age(19)];

缺乏美感,也不简洁。但是返回带参数,返回值为对象本身的 Block 的话,则可以表现为是一个 getter 方法,get一个 Block,然后在Block中传递参数。

例子:

Swift 链式编程

Swift中的实现链式编程比Objective-C中简单很多,通过func和extension即可实现。

扩展UIView:

调用方法:

测试代码

Objective-C 链式编程

Objective-C中实现链式编程主要是通过Block来实现,利用方法的点式调用,自定义LWJView,定义如下:

LWJView.h

实现如下:

LWJView.m

调用方法:

测试代码

运行的结果都是:

运行结果图

相关文章

  • 链式编程思想

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

  • iOS-链式编程思想

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

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

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

  • 链式编程思想简介

    链式编程思想简介

  • 工作iOS技术总结

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

  • Swift 链式编程思想让你的代码更优雅

    Swift链式编程思想 一、知识小集锦 在介绍链式编程思想之前,我们先了解一下我们所知道的一些编程思想: l面向过...

  • Swift 链式编程思想学习

    Swift链式编程思想 一、知识小集锦 在介绍链式编程思想之前,我们先了解一下我们所知道的一些编程思想: l面向过...

  • 编程思想-链式编程

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

  • iOS-链式编程

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

  • 链式编程思想

    # 1,链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性提高。 2,链式编...

网友评论

    本文标题:iOS-链式编程思想

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