RXSwift从UITextField入手走上一条RX不归路
RXSwift项目地址:https://github.com/ReactiveX/RxSwift
来一波广告先
自定义返回 自定义item JS交互 NAV去分割线的 Swift3.0WKWebView:https://github.com/XFIOSXiaoFeng/SwiftWkWebView
言归正传
用.storyboard拖一个UITextField先(这玩意儿就自己动手了哈)
@IBOutlet weak var rx_test: UITextField!
导入头文件
import RxCocoa
import RxSwift
先准备一个质量较好的安全套
private let disposeBag = DisposeBag()
题外话(经常这样点不出来提示,鬼火冒)
rx_test.rx.text.
先来发简单的,然后就有了这样
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干掉直接驶入进菊花(这下舒服多了)
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高阶函数你值得拥有
go on 高潮来了
路标示意 默认你还没有上老司机的车
orEmpty
就不做过多解释了哈
subscribe
当你在看到某人的某种反映后,你可以有几种反应:
根据对方的行为,做相应的事,比如对方让你和她/他滚床单。( subscribe )
把对方说的行为,加工下再传达给其他人,比如对方说二毛好像不太舒服,你传达给其他人时就变成了二毛不行了。( map: )
参考其他人的行为再做处理,比如 A 说某老板娘下面很好吃,B 说某老板娘下面一般般,你需要结合两个人的意见再做定夺。( zip: )
disposeBag
他其实相当于ARC的自动释放的东东,带上这个安全套之后就可以放心大胆的搞些事情了