let disposeBg = DisposeBag() //直接在创建 //在 subscribe 方法中创建 let ofObserval = Observable.of("a","b","c") ofObserval.subscribe(onNext: { (element) in print(element) }, onError: { (error) in print(error.localizedDescription) }, onC…
使用 Binder 创建观察者 //Observable序列(每隔1秒钟发出一个索引数) let scheduleObservable = Observable<Int>.interval(1, scheduler: MainScheduler.instance) let blinderObserval:Binder<String> = Binder(label){view,text in view.text = text } scheduleObservable .map{&qu…
1.buffer的基本使用 let publishSubject = PublishSubject<String>() //buffer 方法作用是缓冲组合,第一个参数是缓冲时间,第二个参数是缓冲个数,第三个参数是线程. //该方法简单来说就是缓存 Observable 中发出的新元素,当元素达到某个数量,或者经过了特定的时间,它就会将这个元素集合发送出来. publishSubject.buffer(timeSpan: 1, count: 3, scheduler: MainSchedule…
//filter:该操作符就是用来过滤掉某些不符合要求的事件. Observable.of(1,2,3,4,5,8).filter({ $0 % 2 == 0 }).subscribe { (event) in print(event.element ?? "nil") }.disposed(by: disposeBag) /* 2 4 8 nil */ print("========================") //distinctUntilChanged…
 Observable 是 Rx 的根基 官网:http://reactivex.io/ github地址:https://github.com/ReactiveX/RxSwift Observable<T> 这个类就是 Rx 框架的基础,我们可以称它为可观察序列.它的作用就是可以异步地产生一系列的 Event(事件),即一个 Observable<T> 对象会随着时间推移不定期地发出 event(element : T) 这样一个东西. 而且这些 Event 还可以携带数据,它的…
第一天:简单体验与RxSwift的编程风格 import UIKit//导入Rx相关框架 import RxSwift import RxCocoa struct Music { let name:String let singer:String init(name:String,singer:String) { self.name = name self.singer = singer } } extension Music:CustomStringConvertible{ var descr…
//startWith //该方法会在 Observable 序列开始之前插入一些事件元素.即发出事件消息之前,会先发出这些预先插入的事件消息 Observable.of(1,2,3) .startWith(0) .subscribe(onNext:{print($0)}) .disposed(by: disposeBag) /* 0 1 2 3 */ print("\n") //插入多个数据也是可以的 Observable.of(1,2,3) .startWith(0) .start…
//amb基本介绍 //当传入多个 Observables 到 amb 操作符时,它将取第一个发出元素或产生事件的 Observable,然后只发出它的元素. //并忽略掉其他的 Observables. let psubject0 = PublishSubject<Int>() let psubject1 = PublishSubject<Int>() let psubject2 = PublishSubject<Int>() psubject0.amb(psubje…
// 从前面的几篇文章可以发现,当我们创建一个 Observable 的时候就要预先将要发出的数据都准备好,等到有人订阅它时再将数据通过 Event 发出去. // 但有时我们希望 Observable 在运行时能动态地“获得”或者说“产生”出一个新的数据,再通过 Event 发送出去. //比如:订阅一个输入框的输入内容,当用户每输入一个字后,这个输入框关联的 Observable 就会发出一个带有输入内容的 Event,通知给所有订阅者. //这个就可以使用下面将要介绍的 Subjects…
有了 Observable,我们还要使用 subscribe() 方法来订阅它,接收它发出的 Event. let observal = Observable.of("a","b","c") /* 第一种用法: 我们使用 subscribe() 订阅了一个 Observable 对象. 该方法的 block 的回调参数就是被发出的 event 事件,我们将其直接打印出来. */ let subscrioble = observal.subscri…