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

用於標識發布者流的唯一標識符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM