• Combine详解


    • Combine详解

    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,可以通过集中事件处理代码并消除麻烦的闭包和基于约定的回调等麻烦的技术,使代码更易于阅读和维护。

    1. Essentials

    Receiving and Handling Events with Combine 从异步源自定义和接收事件。

    1. Publishers

    protocol Publisher

    声明类型可以随时间传输一系列值。

    enum Publishers

    用作发布者的类型的命名空间。

    struct AnyPublisher

    类型擦除发布者。

    protocol ConnectablePublisher

    publisher,提供连接和取消发布的明确方法。

    struct Published

    发布标有属性的属性的类型。

    protocol Cancellable

    指示活动或操作支持取消的协议。

    class AnyCancellable

    一种类型擦除可取消对象,在取消时执行提供的闭包。

    1. Convenience Publishers

    class Future

    最终生成单个值然后完成或失败的发布者。

    struct Just

    发布者只向每个订阅者发出一次输出,然后完成。 struct Deferred

    在运行提供的闭包之前等待订阅的发布者,以便为新订阅者创建发布者。 struct Empty

    从不发布任何值的发布者,并可选择立即完成。 struct Fail

    发布者,它会立即以指定的错误终止。 struct Record

    允许记录一系列输入和完成的发布者,以便稍后回放给每个订阅者。

    1. Subscribers

    protocol Subscriber

    声明可以从发布者接收输入的类型的协议。 enum Subscribers

    用作订阅者的类型的命名空间。 struct AnySubscriber

    类型擦除用户。 protocol Subscription

    表示订户与发布者的连接的协议。 enum Subscriptions

    与订阅相关的符号的命名空间。

    1. Subjects

    protocol Subject

    向外部调用者公开方法以发布元素的发布者。 class CurrentValueSubject

    包含单个值的主题,并在值更改时发布新元素。 class PassthroughSubject

    向下游订户广播元素的主题。

    1. Schedulers

    protocol Scheduler

    定义何时以及如何执行闭包的协议。 struct ImmediateScheduler

    用于执行同步动作的调度程序。 protocol SchedulerTimeIntervalConvertible

    一种协议,为调度程序提供相对时间的表达式。

    1. Observable Objects

    protocol ObservableObject

    一种对象,其中发布者在对象发生更改之前发出。 class ObservableObjectPublisher

    从可观察对象发布更改的发布者。

    1. Encoders and Decoders

    protocol TopLevelEncoder

    一种定义编码方法的类型。 protocol TopLevelDecoder

    定义解码方法的类型。

    1. Debugging Identifiers

    protocol CustomCombineIdentifierConvertible

    用于唯一标识发布者流的协议。 struct CombineIdentifier

    用于标识发布者流的唯一标识符。

  • 相关阅读:
    音频(一)_音频认知(1.音频释义)
    音频_写在前面的话
    SignInWithAppleId(Apple登录接入)_unity篇
    编程工具~用了都说好的快捷键大杂烩
    Unity的PlayerPrefs存储路径
    unity如何判断应用的运行平台
    Unity资源加载机制www的坑
    VSCode快捷键
    MD5加密字符串并转化为base64(C#和PHP代码相同实现)
    转载:关于 Google Chrome 中的全屏模式和 APP 模式
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/12684336.html
Copyright © 2020-2023  润新知