版本记录
版本号 | 时间 |
---|---|
V1.0 | 2019.09.16 星期一 |
前言
最近苹果多了一个框架
Combine
,这里我们就一起来看一下这个框架。
Overview
通过组合事件处理运算符来自定义异步事件的处理。
首先看下框架概览
Combine
框架提供了一个声明性的Swift API
,用于随时间处理值。这些值可以表示多种异步事件。Combine
合声明publishers
以公开可随时间变化的值,以及subscribers
从publishers
接收这些值。
-
Publisher协议声明了一种可以随时间传递一系列值的类型。
publishers
可让运营商根据从上游发布商处收到的值采取行动并重新发布。 - 在
publishers
链的末尾,Subscriber在接收元素时对其进行操作。publishers
仅在subscribers
明确请求时才会发出值。这使您的subscribers
代码能够控制从其连接的publishers
接收事件的速度。
一些Foundation
类型通过publishers
公开其功能,包括Timer,NotificationCenter和URLSession。 Combine
还为符合Key-Value Observing
的任何属性提供内置publishers
。
您可以组合多个publishers
的输出并协调他们的交互。例如,您可以从文本字段的publisher
订阅更新,并使用该文本执行URL请求。然后,您可以使用其他publishers
处理回复并使用它们来更新您的应用。
通过采用Combine
,您可以通过集中事件处理代码并消除麻烦的闭包和基于约定的回调等麻烦的技术,使代码更易于阅读和维护。
Topics
1. Essentials
-
Receiving and Handling Events with Combine
- 从异步源自定义和接收事件。
2. Publishers
-
protocol
Publisher- 声明类型可以随时间传输一系列值。
-
enum
Publishers- 用作发布者的类型的命名空间。
-
struct
AnyPublisher- 类型擦除发布者。
-
protocol
ConnectablePublisher-
publisher
,提供连接和取消发布的明确方法。
-
-
struct
Published- 发布标有属性的属性的类型。
-
protocol
Cancellable- 指示活动或操作支持取消的协议。
-
class
AnyCancellable- 一种类型擦除可取消对象,在取消时执行提供的闭包。
3. Convenience Publishers
-
- 最终生成单个值然后完成或失败的发布者。
-
- 发布者只向每个订阅者发出一次输出,然后完成。
-
- 在运行提供的闭包之前等待订阅的发布者,以便为新订阅者创建发布者。
-
- 从不发布任何值的发布者,并可选择立即完成。
-
- 发布者,它会立即以指定的错误终止。
-
- 允许记录一系列输入和完成的发布者,以便稍后回放给每个订阅者。
4. Subscribers
-
- 声明可以从发布者接收输入的类型的协议。
-
- 用作订阅者的类型的命名空间。
-
- 类型擦除用户。
-
- 表示订户与发布者的连接的协议。
-
- 与订阅相关的符号的命名空间。
5. Subjects
-
- 向外部调用者公开方法以发布元素的发布者。
-
- 包含单个值的主题,并在值更改时发布新元素。
-
- 向下游订户广播元素的主题。
6. Schedulers
-
- 定义何时以及如何执行闭包的协议。
-
- 用于执行同步动作的调度程序。
-
protocol SchedulerTimeIntervalConvertible
- 一种协议,为调度程序提供相对时间的表达式。
7. Observable Objects
-
- 一种对象,其中发布者在对象发生更改之前发出。
-
class ObservableObjectPublisher
- 从可观察对象发布更改的发布者。
8. Encoders and Decoders
-
- 一种定义编码方法的类型。
-
- 定义解码方法的类型。
9. Debugging Identifiers
-
protocol CustomCombineIdentifierConvertible
- 用于唯一标识发布者流的协议。
-
- 用于标识发布者流的唯一标识符。
后记
本篇主要讲述了Combine框架基本概览,感兴趣的给个赞或者关注~~~