RXSwift從UITextField入手走上一條RX不歸路
7AA447D3-3EAD-4DB9-BC89-A6F4DB081A9B.png
RXSwift項目地址:https://github.com/ReactiveX/RxSwift
來一波廣告先
自定義返回 自定義item JS交互 NAV去分割線的 Swift3.0WKWebView:https://github.com/XFIOSXiaoFeng/SwiftWkWebView
言歸正傳
用.storyboard拖一個UITextField先(這玩意兒就自己動手了哈)
@IBOutlet weak var rx_test: UITextField!
導(dǎo)入頭文件
import RxCocoa
import RxSwift
先準(zhǔn)備一個質(zhì)量較好的安全套
private let disposeBag = DisposeBag()
題外話(經(jīng)常這樣點不出來提示,鬼火冒)
rx_test.rx.text.
先來發(fā)簡單的,然后就有了這樣
let text = rx_test.rx.text
text.orEmpty.subscribe { (e) in
print(e)
}
別說話赌髓,用模擬器去感受吧
next()
next(1)
next(12)
next(123)
next(1234)
next(12345)
next(123456)
感覺有那么丟丟意思了,不過老大的黃斑很是不爽,來吧吨些,我的disposeBag屯换,開始搞事情了
let text = rx_test.rx.text
text.orEmpty.subscribe { (e) in
print(e)
}.disposed(by: disposeBag)
別蒙了,來波完整的
import UIKit
import RxCocoa
import RxSwift
class ViewController: UIViewController {
@IBOutlet weak var rx_test: UITextField!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
let text = rx_test.rx.text
text.orEmpty.subscribe { (e) in
print(e)
}.disposed(by: disposeBag)
}
}
煩人的不提示強迫癥的還是let text干掉直接駛?cè)脒M菊花(這下舒服多了)
rx_test.rx.text.orEmpty.subscribe { (e) in
print(e)
}.disposed(by: disposeBag)
再來整個容
rx_test.rx.text.orEmpty.subscribe {
print($0)
}.disposed(by: disposeBag)
看到這個“$0”玩意兒就傻眼了买窟?swift高階函數(shù)你值得擁有
go on 高潮來了
路標(biāo)示意 默認你還沒有上老司機的車
orEmpty
就不做過多解釋了哈
subscribe
當(dāng)你在看到某人的某種反映后唯灵,你可以有幾種反應(yīng):
根據(jù)對方的行為贾铝,做相應(yīng)的事,比如對方讓你和她/他滾床單埠帕。( subscribe )
把對方說的行為垢揩,加工下再傳達給其他人,比如對方說二毛好像不太舒服敛瓷,你傳達給其他人時就變成了二毛不行了叁巨。( map: )
參考其他人的行為再做處理,比如 A 說某老板娘下面很好吃呐籽,B 說某老板娘下面一般般锋勺,你需要結(jié)合兩個人的意見再做定奪。( zip: )
disposeBag
他其實相當(dāng)于ARC的自動釋放的東東,帶上這個安全套之后就可以放心大膽的搞些事情了