序列,觀察者,調(diào)度者,銷毀者是RxSwift幾個(gè)要素,今天說說序列的創(chuàng)建
1.empty
首先來一個(gè)空序列,本來序列事件是Int類型,這里調(diào)用empyt,則沒有序列,只有complete
let emptyOb = Observable<Int>.empty()
_ = emptyOb.subscribe(onNext: { (number) in
print("訂閱:",number)
}, onError: { (error) in
print("error:",error)
}, onCompleted: {
print("完成回調(diào)")
}) {
print("釋放回調(diào)")
}

流程簡(jiǎn)潔.png
2.just
- 單個(gè)信號(hào)序列創(chuàng)建
- 通過傳入默認(rèn)值初始化,構(gòu)建只有一個(gè)元素的Observable,訂閱完成自動(dòng)completed
let array = ["A","B","C"]
Observable<String>.just(array)
.subscribe{(event) in
print(event)
}.disposed(by:disposeBag)
_ = Observable<String>.just(array)
.subscribe(onNext:{(number) in
print(number)
},onError: {(error) in
print(error)
},onCompleted: {
}) {
print("釋放完成")
}

11.png
3.of
- 創(chuàng)建一個(gè)新的可觀察序列,該實(shí)例具有可變數(shù)量的元素
- 該方法可接受可變數(shù)量的參數(shù)
// 多個(gè)元素 - 針對(duì)序列處理
Observable<String>.of("A","B")
.subscribe { (event) in
print(event)
}.disposed(by: disposeBag)
// 字典
Observable<[String: Any]>.of(["name":"JIM","age":18])
.subscribe { (event) in
print(event)
}.disposed(by: disposeBag)
// 數(shù)組
Observable<[String]>.of(["lucy","lily"])
.subscribe { (event) in
print(event)
}.disposed(by: disposeBag)

22.png
-
無論字典,數(shù)組,多個(gè)元素都是正常使用
4.from- 將可選序列轉(zhuǎn)換為可觀察序列。
- 從集合中獲取序列:數(shù)組,集合,set 獲取序列 - 有可選項(xiàng)處理 - 更安全
Observable<[String]>.from(optional: ["nice","good"])
.subscribe { (event) in
print(event)
}.disposed(by: disposeBag)

33.png
- self._optional = optional底層初始化可選項(xiàng)保存
- 訂閱流程判斷是否匹配我們的可選項(xiàng)
- 發(fā)送observer.on(.next(element))序列
- 隨即自動(dòng)observer.on(.completed)完成序列發(fā)送