Modernizes APIs.

This commit is contained in:
Krunoslav Zaher 2016-08-07 20:14:19 +02:00
parent 3637153169
commit aef4e69339
55 changed files with 612 additions and 560 deletions

View File

@ -49,9 +49,9 @@ let c = Observable.combineLatest(a.asObservable(), b.asObservable()) { $0 + $1 }
// 1 + 2 = 3 which is >= 0, so `c` is initially equal to "3 is positive" // 1 + 2 = 3 which is >= 0, so `c` is initially equal to "3 is positive"
// To pull values out of the Rx `Observable` `c`, subscribe to values from `c`. // To pull values out of the Rx `Observable` `c`, subscribe to values from `c`.
// `subscribeNext` means subscribe to the next (fresh) values of `c`. // `subscribe(onNext:)` means subscribe to the next (fresh) values of `c`.
// That also includes the initial value "3 is positive". // That also includes the initial value "3 is positive".
c.subscribeNext { print($0) } // prints: "3 is positive" c.subscribe(onNext: { print($0) }) // prints: "3 is positive"
// Now, let's increase the value of `a` // Now, let's increase the value of `a`
a.value = 4 // prints: 6 is positive a.value = 4 // prints: 6 is positive
@ -152,12 +152,12 @@ self.usernameOutlet.rx_text
// That's what `switchLatest` does. // That's what `switchLatest` does.
.switchLatest() .switchLatest()
// Now we need to bind that to the user interface somehow. // Now we need to bind that to the user interface somehow.
// Good old `subscribeNext` can do that. // Good old `subscribe(onNext:)` can do that.
// That's the end of `Observable` chain. // That's the end of `Observable` chain.
.subscribeNext { valid in .subscribe(onNext: { valid in
errorLabel.textColor = validationColor(valid) errorLabel.textColor = validationColor(valid)
errorLabel.text = valid.message errorLabel.text = valid.message
} })
// This will produce a `Disposable` object that can unbind everything and cancel // This will produce a `Disposable` object that can unbind everything and cancel
// pending async operations. // pending async operations.
// Instead of doing it manually, which is tedious, // Instead of doing it manually, which is tedious,

View File

@ -276,9 +276,9 @@ let searchForMe = searchWikipedia("me")
let cancel = searchForMe let cancel = searchForMe
// sequence generation starts now, URL requests are fired // sequence generation starts now, URL requests are fired
.subscribeNext { results in .subscribe(onNext: { results in
print(results) print(results)
} })
``` ```
@ -298,9 +298,9 @@ func myJust<E>(element: E) -> Observable<E> {
} }
myJust(0) myJust(0)
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
``` ```
this will print: this will print:
@ -339,17 +339,17 @@ print("Started ----")
// first time // first time
stringCounter stringCounter
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
print("----") print("----")
// again // again
stringCounter stringCounter
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
print("Ended ----") print("Ended ----")
``` ```
@ -406,9 +406,9 @@ let counter = myInterval(0.1)
print("Started ----") print("Started ----")
let subscription = counter let subscription = counter
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
NSThread.sleepForTimeInterval(0.5) NSThread.sleepForTimeInterval(0.5)
@ -438,13 +438,13 @@ let counter = myInterval(0.1)
print("Started ----") print("Started ----")
let subscription1 = counter let subscription1 = counter
.subscribeNext { n in .subscribe(onNext: { n in
print("First \(n)") print("First \(n)")
} })
let subscription2 = counter let subscription2 = counter
.subscribeNext { n in .subscribe(onNext: { n in
print("Second \(n)") print("Second \(n)")
} })
NSThread.sleepForTimeInterval(0.5) NSThread.sleepForTimeInterval(0.5)
@ -503,13 +503,13 @@ let counter = myInterval(0.1)
print("Started ----") print("Started ----")
let subscription1 = counter let subscription1 = counter
.subscribeNext { n in .subscribe(onNext: { n in
print("First \(n)") print("First \(n)")
} })
let subscription2 = counter let subscription2 = counter
.subscribeNext { n in .subscribe(onNext: { n in
print("Second \(n)") print("Second \(n)")
} })
NSThread.sleepForTimeInterval(0.5) NSThread.sleepForTimeInterval(0.5)
@ -637,9 +637,9 @@ let subscription = myInterval(0.1)
.myMap { e in .myMap { e in
return "This is simply \(e)" return "This is simply \(e)"
} }
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
``` ```
and this will print and this will print
@ -668,9 +668,9 @@ This isn't something that should be practiced often, and is a bad code smell, bu
let magicBeings: Observable<MagicBeing> = summonFromMiddleEarth() let magicBeings: Observable<MagicBeing> = summonFromMiddleEarth()
magicBeings magicBeings
.subscribeNext { being in // exit the Rx monad .subscribe(onNext: { being in // exit the Rx monad
self.doSomeStateMagic(being) self.doSomeStateMagic(being)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// //
@ -698,9 +698,9 @@ Every time you do this, somebody will probably write this code somewhere
```swift ```swift
kittens kittens
.subscribeNext { kitten in .subscribe(onNext: { kitten in
// so something with kitten // so something with kitten
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
``` ```
@ -783,9 +783,9 @@ let subscription = myInterval(0.1)
.map { e in .map { e in
return "This is simply \(e)" return "This is simply \(e)"
} }
.subscribeNext { n in .subscribe(onNext: { n in
print(n) print(n)
} })
NSThread.sleepForTimeInterval(0.5) NSThread.sleepForTimeInterval(0.5)
@ -851,9 +851,9 @@ In case you want to have some resource leak detection logic, the simplest method
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
*/ */
_ = Observable<Int>.interval(1, scheduler: MainScheduler.instance) _ = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
.subscribeNext { _ in .subscribe(onNext: { _ in
print("Resource count \(RxSwift.resourceCount)") print("Resource count \(RxSwift.resourceCount)")
} })
``` ```
Most efficient way to test for memory leaks is: Most efficient way to test for memory leaks is:
@ -952,9 +952,9 @@ Example how to observe frame of `UIView`.
```swift ```swift
view view
.rx_observe(CGRect.self, "frame") .rx_observe(CGRect.self, "frame")
.subscribeNext { frame in .subscribe(onNext: { frame in
... ...
} })
``` ```
or or
@ -962,9 +962,9 @@ or
```swift ```swift
view view
.rx_observeWeakly(CGRect.self, "frame") .rx_observeWeakly(CGRect.self, "frame")
.subscribeNext { frame in .subscribe(onNext: { frame in
... ...
} })
``` ```
### `rx_observe` ### `rx_observe`
@ -1077,9 +1077,9 @@ let responseJSON = NSURLSession.sharedSession().rx_JSON(request)
let cancelRequest = responseJSON let cancelRequest = responseJSON
// this will fire the request // this will fire the request
.subscribeNext { json in .subscribe(onNext: { json in
print(json) print(json)
} })
NSThread.sleepForTimeInterval(3) NSThread.sleepForTimeInterval(3)

View File

@ -33,7 +33,7 @@ sequence1
If you want to start sequence generation (`subscribe` method) and call dispose on a specific scheduler, use `subscribeOn(scheduler)`. If you want to start sequence generation (`subscribe` method) and call dispose on a specific scheduler, use `subscribeOn(scheduler)`.
In case `subscribeOn` isn't explicitly specified, the `subscribe` method will be called on the same thread/scheduler on which `subscribeNext` or `subscribe` is called. In case `subscribeOn` isn't explicitly specified, the `subscribe` method will be called on the same thread/scheduler on which `subscribe(onNext:)` or `subscribe` is called.
In case `subscribeOn` isn't explicitly specified, the `dispose` method will be called on the same thread/scheduler that initiated disposing. In case `subscribeOn` isn't explicitly specified, the `dispose` method will be called on the same thread/scheduler that initiated disposing.

View File

@ -114,9 +114,9 @@ let disposeBag = DisposeBag()
xs xs
.filter { ... } .filter { ... }
.map { ... } .map { ... }
.subscribeNext { nextElement in // <-- note the `subscribe*` method .subscribe(onNext: { nextElement in // <-- note the `subscribe*` method
// use the element // use the element
print(nextElement) print(nextElement)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
``` ```

View File

@ -22,7 +22,7 @@ example("startWith") {
.startWith("1") .startWith("1")
.startWith("2") .startWith("2")
.startWith("3", "🅰️", "🅱️") .startWith("3", "🅰️", "🅱️")
.subscribeNext { print($0) } ..subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -40,7 +40,7 @@ example("merge") {
Observable.of(subject1, subject2) Observable.of(subject1, subject2)
.merge() .merge()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
subject1.onNext("🅰️") subject1.onNext("🅰️")
@ -70,7 +70,7 @@ example("zip") {
Observable.zip(stringSubject, intSubject) { stringElement, intElement in Observable.zip(stringSubject, intSubject) { stringElement, intElement in
"\(stringElement) \(intElement)" "\(stringElement) \(intElement)"
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
stringSubject.onNext("🅰️") stringSubject.onNext("🅰️")
@ -98,7 +98,7 @@ example("combineLatest") {
Observable.combineLatest(stringSubject, intSubject) { stringElement, intElement in Observable.combineLatest(stringSubject, intSubject) { stringElement, intElement in
"\(stringElement) \(intElement)" "\(stringElement) \(intElement)"
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
stringSubject.onNext("🅰️") stringSubject.onNext("🅰️")
@ -121,7 +121,7 @@ example("Array.combineLatest") {
[stringObservable, fruitObservable, animalObservable].combineLatest { [stringObservable, fruitObservable, animalObservable].combineLatest {
"\($0[0]) \($0[1]) \($0[2])" "\($0[0]) \($0[1]) \($0[2])"
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -141,7 +141,7 @@ example("switchLatest") {
variable.asObservable() variable.asObservable()
.switchLatest() .switchLatest()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
subject1.onNext("🏈") subject1.onNext("🏈")

View File

@ -23,11 +23,11 @@ func sampleWithoutConnectableOperators() {
let interval = Observable<Int>.interval(1, scheduler: MainScheduler.instance) let interval = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
_ = interval _ = interval
.subscribeNext { print("Subscription: 1, Event: \($0)") } .subscribe(onNext: { print("Subscription: 1, Event: \($0)") })
delay(5) { delay(5) {
_ = interval _ = interval
.subscribeNext { print("Subscription: 2, Event: \($0)") } .subscribe(onNext: { print("Subscription: 2, Event: \($0)") })
} }
} }
@ -47,18 +47,18 @@ func sampleWithPublish() {
.publish() .publish()
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 1:, Event: \($0)") } .subscribe(onNext: { print("Subscription 1:, Event: \($0)") })
delay(2) { _ = intSequence.connect() } delay(2) { _ = intSequence.connect() }
delay(4) { delay(4) {
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 2:, Event: \($0)") } .subscribe(onNext: { print("Subscription 2:, Event: \($0)") })
} }
delay(6) { delay(6) {
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 3:, Event: \($0)") } .subscribe(onNext: { print("Subscription 3:, Event: \($0)") })
} }
} }
@ -79,18 +79,18 @@ func sampleWithReplayBuffer() {
.replay(5) .replay(5)
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 1:, Event: \($0)") } ..subscribe(onNext: { print("Subscription 1:, Event: \($0)") })
delay(2) { _ = intSequence.connect() } delay(2) { _ = intSequence.connect() }
delay(4) { delay(4) {
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 2:, Event: \($0)") } .subscribe(onNext: { print("Subscription 2:, Event: \($0)") })
} }
delay(8) { delay(8) {
_ = intSequence _ = intSequence
.subscribeNext { print("Subscription 3:, Event: \($0)") } .subscribe(onNext: { print("Subscription 3:, Event: \($0)") })
} }
} }
@ -107,24 +107,24 @@ func sampleWithMulticast() {
let subject = PublishSubject<Int>() let subject = PublishSubject<Int>()
_ = subject _ = subject
.subscribeNext { print("Subject: \($0)") } .subscribe(onNext: { print("Subject: \($0)") })
let intSequence = Observable<Int>.interval(1, scheduler: MainScheduler.instance) let intSequence = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
.multicast(subject) .multicast(subject)
_ = intSequence _ = intSequence
.subscribeNext { print("\tSubscription 1:, Event: \($0)") } .subscribe(onNext: { print("\tSubscription 1:, Event: \($0)") })
delay(2) { _ = intSequence.connect() } delay(2) { _ = intSequence.connect() }
delay(4) { delay(4) {
_ = intSequence _ = intSequence
.subscribeNext { print("\tSubscription 2:, Event: \($0)") } .subscribe(onNext: { print("\tSubscription 2:, Event: \($0)") })
} }
delay(6) { delay(6) {
_ = intSequence _ = intSequence
.subscribeNext { print("\tSubscription 3:, Event: \($0)") } .subscribe(onNext: { print("\tSubscription 3:, Event: \($0)") })
} }
} }

View File

@ -63,13 +63,13 @@ example("of") {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
Observable.of("🐶", "🐱", "🐭", "🐹") Observable.of("🐶", "🐱", "🐭", "🐹")
.subscribeNext { element in .subscribe(onNext: { element in
print(element) print(element)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
> This example also introduces using the `subscribeNext(_:)` convenience method. Unlike `subscribe(_:)`, which subscribes an _event_ handler for all event types (Next, Error, and Completed), `subscribeNext(_:)` subscribes an _element_ handler that will ignore Error and Completed events and only produce Next event elements. There are also `subscribeError(_:)` and `subscribeCompleted(_:)` convenience methods, should you only want to subscribe to those event types. And there is a `subscribe(onNext:onError:onCompleted:onDisposed:)` method, which allows you to react to one or more event types and when the subscription is terminated for any reason, or disposed, in a single call: > This example also introduces using the `subscribe(onNext:)` convenience method. Unlike `subscribe(_:)`, which subscribes an _event_ handler for all event types (Next, Error, and Completed), `subscribe(onNext:)` subscribes an _element_ handler that will ignore Error and Completed events and only produce Next event elements. There are also `subscribe(onError:)` and `subscribe(onCompleted:)` convenience methods, should you only want to subscribe to those event types. And there is a `subscribe(onNext:onError:onCompleted:onDisposed:)` method, which allows you to react to one or more event types and when the subscription is terminated for any reason, or disposed, in a single call:
``` ```
someObservable.subscribe( someObservable.subscribe(
onNext: { print("Element:", $0) }, onNext: { print("Element:", $0) },
@ -79,14 +79,14 @@ example("of") {
) )
``` ```
---- ----
## toObservable ## from
Creates an `Observable` sequence from a `SequenceType`, such as an `Array`, `Dictionary`, or `Set`. Creates an `Observable` sequence from a `SequenceType`, such as an `Array`, `Dictionary`, or `Set`.
*/ */
example("toObservable") { example("from") {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
["🐶", "🐱", "🐭", "🐹"].toObservable() Observable.from(["🐶", "🐱", "🐭", "🐹"])
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -132,7 +132,7 @@ example("repeatElement") {
Observable.repeatElement("🔴") Observable.repeatElement("🔴")
.take(3) .take(3)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -149,7 +149,7 @@ example("generate") {
condition: { $0 < 3 }, condition: { $0 < 3 },
iterate: { $0 + 1 } iterate: { $0 + 1 }
) )
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -175,11 +175,11 @@ example("deferred") {
} }
deferredSequence deferredSequence
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
deferredSequence deferredSequence
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -204,7 +204,7 @@ example("doOn") {
Observable.of("🍎", "🍐", "🍊", "🍋") Observable.of("🍎", "🍐", "🍊", "🍋")
.doOn { print("Intercepted:", $0) } .doOn { print("Intercepted:", $0) }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
//: > There are also `doOnNext(_:)`, `doOnError(_:)`, and `doOnCompleted(_:)` convenience methods to intercept those specific events, and `doOn(onNext:onError:onCompleted:)` to intercept one or more events in a single call. //: > There are also `doOnNext(_:)`, `doOnError(_:)`, and `doOnCompleted(_:)` convenience methods to intercept those specific events, and `doOn(onNext:onError:onCompleted:)` to intercept one or more events in a single call.

View File

@ -40,7 +40,7 @@ example("debug") {
sequenceThatErrors sequenceThatErrors
.retry(3) .retry(3)
.debug() .debug()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -59,11 +59,11 @@ example("RxSwift.resourceCount") {
let variable = Variable("🍎") let variable = Variable("🍎")
let subscription1 = variable.asObservable().subscribeNext { print($0) } let subscription1 = variable.asObservable().subscribe(onNext: { print($0) })
print(RxSwift.resourceCount) print(RxSwift.resourceCount)
let subscription2 = variable.asObservable().subscribeNext { print($0) } let subscription2 = variable.asObservable().subscribe(onNext: { print($0) })
print(RxSwift.resourceCount) print(RxSwift.resourceCount)
@ -80,4 +80,4 @@ print(RxSwift.resourceCount)
#endif #endif
//: > `RxSwift.resourceCount` is not enabled by default, and should generally not be enabled in Release builds. [Click here](Enable_RxSwift.resourceCount) for instructions on how to enable it. //: > `RxSwift.resourceCount` is not enabled by default, and should generally not be enabled in Release builds. [Click here](Enable_RxSwift.resourceCount) for instructions on how to enable it.
//: [Table of Contents](Table_of_Contents) //: [Table of Contents](Tabl

View File

@ -90,7 +90,7 @@ example("retry") {
sequenceThatErrors sequenceThatErrors
.retry() .retry()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -124,8 +124,8 @@ example("retry maxAttemptCount") {
sequenceThatErrors sequenceThatErrors
.retry(3) .retry(3)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
//: [Next](@next) - [Table of Contents](Table_of_Contents) //: [Next](@next) - [Table of Contents](Table_of_

View File

@ -25,7 +25,7 @@ example("filter") {
.filter { .filter {
$0 == "🐱" $0 == "🐱"
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -39,7 +39,7 @@ example("distinctUntilChanged") {
Observable.of("🐱", "🐷", "🐱", "🐱", "🐱", "🐵", "🐱") Observable.of("🐱", "🐷", "🐱", "🐱", "🐱", "🐵", "🐱")
.distinctUntilChanged() .distinctUntilChanged()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -53,7 +53,7 @@ example("elementAt") {
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵") Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
.elementAt(3) .elementAt(3)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -66,7 +66,7 @@ example("single") {
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵") Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
.single() .single()
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
@ -99,7 +99,7 @@ example("take") {
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵") Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
.take(3) .take(3)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -113,7 +113,7 @@ example("takeLast") {
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵") Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
.takeLast(3) .takeLast(3)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -127,7 +127,7 @@ example("takeWhile") {
Observable.of(1, 2, 3, 4, 5, 6) Observable.of(1, 2, 3, 4, 5, 6)
.takeWhile { $0 < 4 } .takeWhile { $0 < 4 }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -168,7 +168,7 @@ example("skip") {
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵") Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
.skip(2) .skip(2)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -182,7 +182,7 @@ example("skipWhile") {
Observable.of(1, 2, 3, 4, 5, 6) Observable.of(1, 2, 3, 4, 5, 6)
.skipWhile { $0 < 4 } .skipWhile { $0 < 4 }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -197,7 +197,7 @@ example("skipWhileWithIndex") {
.skipWhileWithIndex { element, index in .skipWhileWithIndex { element, index in
index < 3 index < 3
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -214,7 +214,7 @@ example("skipUntil") {
sourceSequence sourceSequence
.skipUntil(referenceSequence) .skipUntil(referenceSequence)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
sourceSequence.onNext("🐱") sourceSequence.onNext("🐱")
@ -228,4 +228,4 @@ example("skipUntil") {
sourceSequence.onNext("🐵") sourceSequence.onNext("🐵")
} }
//: [Next](@next) - [Table of Contents](Table_of_Contents) //:

View File

@ -34,7 +34,7 @@ example("reduce") {
Observable.of(10, 100, 1000) Observable.of(10, 100, 1000)
.reduce(1, accumulator: +) .reduce(1, accumulator: +)
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -69,4 +69,4 @@ example("concat") {
subject2.onNext("🐭") subject2.onNext("🐭")
} }
//: [Next](@next) - [Table of Contents](Table_of_Contents) //: [Next](@next) - [Table of Contents](Table_of_Conte

View File

@ -19,7 +19,7 @@ example("map") {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
Observable.of(1, 2, 3) Observable.of(1, 2, 3)
.map { $0 * $0 } .map { $0 * $0 }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
/*: /*:
@ -42,7 +42,7 @@ example("flatMap and flatMapLatest") {
player.asObservable() player.asObservable()
.flatMap { $0.score.asObservable() } // Change flatMap to flatMapLatest and observe change in printed output .flatMap { $0.score.asObservable() } // Change flatMap to flatMapLatest and observe change in printed output
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
👦🏻.score.value = 85 👦🏻.score.value = 85
@ -71,8 +71,8 @@ example("scan") {
.scan(1) { aggregateValue, newValue in .scan(1) { aggregateValue, newValue in
aggregateValue + newValue aggregateValue + newValue
} }
.subscribeNext { print($0) } .subscribe(onNext: { print($0) })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
//: [Next](@next) - [Table of Contents](Table_of_Contents) //: [Next](@next) - [Table of Contents](Tabl

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='6.0' target-platform='osx' display-mode='rendered' last-migration='0800'> <playground version='6.0' target-platform='osx' display-mode='raw' last-migration='0800'>
<pages> <pages>
<page name='Table_of_Contents'/> <page name='Table_of_Contents'/>
<page name='Introduction'/> <page name='Introduction'/>

View File

@ -139,8 +139,8 @@
C8093CF61B8A72BE0088E94D /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; }; C8093CF61B8A72BE0088E94D /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; };
C8093CF71B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; }; C8093CF71B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; };
C8093CF81B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; }; C8093CF81B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; };
C8093CFB1B8A72BE0088E94D /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */; }; C8093CFB1B8A72BE0088E94D /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */; };
C8093CFC1B8A72BE0088E94D /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */; }; C8093CFC1B8A72BE0088E94D /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */; };
C8093CFD1B8A72BE0088E94D /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; }; C8093CFD1B8A72BE0088E94D /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; };
C8093CFE1B8A72BE0088E94D /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; }; C8093CFE1B8A72BE0088E94D /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; };
C8093CFF1B8A72BE0088E94D /* Amb.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6B1B8A72BE0088E94D /* Amb.swift */; }; C8093CFF1B8A72BE0088E94D /* Amb.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6B1B8A72BE0088E94D /* Amb.swift */; };
@ -836,7 +836,7 @@
C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC01B8A72BE0088E94D /* ReplaySubject.swift */; }; C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC01B8A72BE0088E94D /* ReplaySubject.swift */; };
C8F0BFA71BBBFB8B001B112F /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; }; C8F0BFA71BBBFB8B001B112F /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; };
C8F0BFA81BBBFB8B001B112F /* Observable+Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C9D1B8A72BE0088E94D /* Observable+Time.swift */; }; C8F0BFA81BBBFB8B001B112F /* Observable+Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C9D1B8A72BE0088E94D /* Observable+Time.swift */; };
C8F0BFA91BBBFB8B001B112F /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */; }; C8F0BFA91BBBFB8B001B112F /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */; };
C8F0BFAA1BBBFB8B001B112F /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C901B8A72BE0088E94D /* Throttle.swift */; }; C8F0BFAA1BBBFB8B001B112F /* Throttle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C901B8A72BE0088E94D /* Throttle.swift */; };
C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6E1B8A72BE0088E94D /* Catch.swift */; }; C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6E1B8A72BE0088E94D /* Catch.swift */; };
C8F0BFAD1BBBFB8B001B112F /* CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C711B8A72BE0088E94D /* CombineLatest.swift */; }; C8F0BFAD1BBBFB8B001B112F /* CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C711B8A72BE0088E94D /* CombineLatest.swift */; };
@ -1089,7 +1089,7 @@
D2EBEAE01BB9B697003A27DC /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; }; D2EBEAE01BB9B697003A27DC /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; };
D2EBEAE11BB9B697003A27DC /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; }; D2EBEAE11BB9B697003A27DC /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */; };
D2EBEAE21BB9B697003A27DC /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; }; D2EBEAE21BB9B697003A27DC /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C681B8A72BE0088E94D /* Observable.swift */; };
D2EBEAE31BB9B697003A27DC /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */; }; D2EBEAE31BB9B697003A27DC /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */; };
D2EBEAE41BB9B697003A27DC /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C9E1B8A72BE0088E94D /* ObservableType.swift */; }; D2EBEAE41BB9B697003A27DC /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C9E1B8A72BE0088E94D /* ObservableType.swift */; };
D2EBEAE51BB9B697003A27DC /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA01B8A72BE0088E94D /* AnyObserver.swift */; }; D2EBEAE51BB9B697003A27DC /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA01B8A72BE0088E94D /* AnyObserver.swift */; };
D2EBEAE61BB9B697003A27DC /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAB1B8A72BE0088E94D /* ObserverType.swift */; }; D2EBEAE61BB9B697003A27DC /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAB1B8A72BE0088E94D /* ObserverType.swift */; };
@ -1454,7 +1454,7 @@
C8093C641B8A72BE0088E94D /* Event.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = "<group>"; }; C8093C641B8A72BE0088E94D /* Event.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = "<group>"; };
C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateSchedulerType.swift; sourceTree = "<group>"; }; C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateSchedulerType.swift; sourceTree = "<group>"; };
C8093C661B8A72BE0088E94D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; C8093C661B8A72BE0088E94D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "Observable+Extensions.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "ObservableType+Extensions.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C8093C681B8A72BE0088E94D /* Observable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = "<group>"; }; C8093C681B8A72BE0088E94D /* Observable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = "<group>"; };
C8093C6B1B8A72BE0088E94D /* Amb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Amb.swift; sourceTree = "<group>"; }; C8093C6B1B8A72BE0088E94D /* Amb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Amb.swift; sourceTree = "<group>"; };
C8093C6E1B8A72BE0088E94D /* Catch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Catch.swift; sourceTree = "<group>"; }; C8093C6E1B8A72BE0088E94D /* Catch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Catch.swift; sourceTree = "<group>"; };
@ -1932,7 +1932,7 @@
C8093C641B8A72BE0088E94D /* Event.swift */, C8093C641B8A72BE0088E94D /* Event.swift */,
C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */, C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */,
C8093C681B8A72BE0088E94D /* Observable.swift */, C8093C681B8A72BE0088E94D /* Observable.swift */,
C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */, C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */,
C849BE2A1BAB5D070019AD27 /* ObservableConvertibleType.swift */, C849BE2A1BAB5D070019AD27 /* ObservableConvertibleType.swift */,
C8093C9E1B8A72BE0088E94D /* ObservableType.swift */, C8093C9E1B8A72BE0088E94D /* ObservableType.swift */,
C8093CA01B8A72BE0088E94D /* AnyObserver.swift */, C8093CA01B8A72BE0088E94D /* AnyObserver.swift */,
@ -3843,7 +3843,7 @@
C8093DA41B8A72BE0088E94D /* ReplaySubject.swift in Sources */, C8093DA41B8A72BE0088E94D /* ReplaySubject.swift in Sources */,
C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.swift in Sources */, C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.swift in Sources */,
C8093D641B8A72BE0088E94D /* Observable+Time.swift in Sources */, C8093D641B8A72BE0088E94D /* Observable+Time.swift in Sources */,
C8093CFC1B8A72BE0088E94D /* Observable+Extensions.swift in Sources */, C8093CFC1B8A72BE0088E94D /* ObservableType+Extensions.swift in Sources */,
C8093D4A1B8A72BE0088E94D /* Throttle.swift in Sources */, C8093D4A1B8A72BE0088E94D /* Throttle.swift in Sources */,
C8B145011BD2D80100267DCE /* ImmediateScheduler.swift in Sources */, C8B145011BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
C8093D061B8A72BE0088E94D /* Catch.swift in Sources */, C8093D061B8A72BE0088E94D /* Catch.swift in Sources */,
@ -4065,7 +4065,7 @@
C8093DA31B8A72BE0088E94D /* ReplaySubject.swift in Sources */, C8093DA31B8A72BE0088E94D /* ReplaySubject.swift in Sources */,
C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.swift in Sources */, C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.swift in Sources */,
C8093D631B8A72BE0088E94D /* Observable+Time.swift in Sources */, C8093D631B8A72BE0088E94D /* Observable+Time.swift in Sources */,
C8093CFB1B8A72BE0088E94D /* Observable+Extensions.swift in Sources */, C8093CFB1B8A72BE0088E94D /* ObservableType+Extensions.swift in Sources */,
C8093D491B8A72BE0088E94D /* Throttle.swift in Sources */, C8093D491B8A72BE0088E94D /* Throttle.swift in Sources */,
C8B145001BD2D80100267DCE /* ImmediateScheduler.swift in Sources */, C8B145001BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
C8093D051B8A72BE0088E94D /* Catch.swift in Sources */, C8093D051B8A72BE0088E94D /* Catch.swift in Sources */,
@ -4213,7 +4213,7 @@
C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */, C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */,
C8F0BFA71BBBFB8B001B112F /* Zip+CollectionType.swift in Sources */, C8F0BFA71BBBFB8B001B112F /* Zip+CollectionType.swift in Sources */,
C8F0BFA81BBBFB8B001B112F /* Observable+Time.swift in Sources */, C8F0BFA81BBBFB8B001B112F /* Observable+Time.swift in Sources */,
C8F0BFA91BBBFB8B001B112F /* Observable+Extensions.swift in Sources */, C8F0BFA91BBBFB8B001B112F /* ObservableType+Extensions.swift in Sources */,
C8F0BFAA1BBBFB8B001B112F /* Throttle.swift in Sources */, C8F0BFAA1BBBFB8B001B112F /* Throttle.swift in Sources */,
C8B145031BD2D80100267DCE /* ImmediateScheduler.swift in Sources */, C8B145031BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */, C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */,
@ -4623,7 +4623,7 @@
D2EBEAE91BB9B697003A27DC /* RxMutableBox.swift in Sources */, D2EBEAE91BB9B697003A27DC /* RxMutableBox.swift in Sources */,
D2EBEAFC1BB9B6BA003A27DC /* Amb.swift in Sources */, D2EBEAFC1BB9B6BA003A27DC /* Amb.swift in Sources */,
D2EBEB231BB9B6C1003A27DC /* Take.swift in Sources */, D2EBEB231BB9B6C1003A27DC /* Take.swift in Sources */,
D2EBEAE31BB9B697003A27DC /* Observable+Extensions.swift in Sources */, D2EBEAE31BB9B697003A27DC /* ObservableType+Extensions.swift in Sources */,
B1D899911BF653410027B05C /* Timeout.swift in Sources */, B1D899911BF653410027B05C /* Timeout.swift in Sources */,
D2EBEB121BB9B6C1003A27DC /* Merge.swift in Sources */, D2EBEB121BB9B6C1003A27DC /* Merge.swift in Sources */,
D2EBEAEF1BB9B6A4003A27DC /* Queue.swift in Sources */, D2EBEAEF1BB9B6A4003A27DC /* Queue.swift in Sources */,

View File

@ -105,9 +105,10 @@ extension DriverConvertibleType {
- returns: Subscription object used to unsubscribe from the observable sequence. - returns: Subscription object used to unsubscribe from the observable sequence.
*/ */
// @warn_unused_result(message:"http://git.io/rxs.ud") // @warn_unused_result(message:"http://git.io/rxs.ud")
@available(*, deprecated, renamed: "drive(onNext:)")
public func driveNext(_ onNext: (E) -> Void) -> Disposable { public func driveNext(_ onNext: (E) -> Void) -> Disposable {
MainScheduler.ensureExecutingOnScheduler(errorMessage: driverErrorMessage) MainScheduler.ensureExecutingOnScheduler(errorMessage: driverErrorMessage)
return self.asObservable().subscribeNext(onNext) return self.asObservable().subscribe(onNext: onNext)
} }
} }

View File

@ -63,9 +63,9 @@ class APIWrappersViewController: ViewController {
// MARK: UIBarButtonItem // MARK: UIBarButtonItem
bbitem.rx_tap bbitem.rx_tap
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UIBarButtonItem Tapped") self?.debug("UIBarButtonItem Tapped")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// MARK: UISegmentedControl // MARK: UISegmentedControl
@ -75,9 +75,9 @@ class APIWrappersViewController: ViewController {
_ = segmentedControl.rx_value <-> segmentedValue _ = segmentedControl.rx_value <-> segmentedValue
segmentedValue.asObservable() segmentedValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UISegmentedControl value \(x)") self?.debug("UISegmentedControl value \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
@ -88,9 +88,9 @@ class APIWrappersViewController: ViewController {
_ = switcher.rx_value <-> switchValue _ = switcher.rx_value <-> switchValue
switchValue.asObservable() switchValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UISwitch value \(x)") self?.debug("UISwitch value \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// MARK: UIActivityIndicatorView // MARK: UIActivityIndicatorView
@ -103,9 +103,9 @@ class APIWrappersViewController: ViewController {
// MARK: UIButton // MARK: UIButton
button.rx_tap button.rx_tap
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UIButton Tapped") self?.debug("UIButton Tapped")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
@ -116,9 +116,9 @@ class APIWrappersViewController: ViewController {
_ = slider.rx_value <-> sliderValue _ = slider.rx_value <-> sliderValue
sliderValue.asObservable() sliderValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UISlider value \(x)") self?.debug("UISlider value \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
@ -130,9 +130,9 @@ class APIWrappersViewController: ViewController {
dateValue.asObservable() dateValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UIDatePicker date \(x)") self?.debug("UIDatePicker date \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
@ -143,18 +143,18 @@ class APIWrappersViewController: ViewController {
_ = textField <-> textValue _ = textField <-> textValue
textValue.asObservable() textValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UITextField text \(x)") self?.debug("UITextField text \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// MARK: UIGestureRecognizer // MARK: UIGestureRecognizer
mypan.rx_event mypan.rx_event
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UIGestureRecognizer event \(x.state)") self?.debug("UIGestureRecognizer event \(x.state)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
@ -165,9 +165,9 @@ class APIWrappersViewController: ViewController {
_ = textView <-> textViewValue _ = textView <-> textViewValue
textViewValue.asObservable() textViewValue.asObservable()
.subscribeNext { [weak self] x in .subscribe(onNext: { [weak self] x in
self?.debug("UITextView text \(x)") self?.debug("UITextView text \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// MARK: CLLocationManager // MARK: CLLocationManager
@ -177,20 +177,20 @@ class APIWrappersViewController: ViewController {
#endif #endif
manager.rx_didUpdateLocations manager.rx_didUpdateLocations
.subscribeNext { x in .subscribe(onNext: { x in
print("rx_didUpdateLocations \(x)") print("rx_didUpdateLocations \(x)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
_ = manager.rx_didFailWithError _ = manager.rx_didFailWithError
.subscribeNext { x in .subscribe(onNext: { x in
print("rx_didFailWithError \(x)") print("rx_didFailWithError \(x)")
} })
manager.rx_didChangeAuthorizationStatus manager.rx_didChangeAuthorizationStatus
.subscribeNext { status in .subscribe(onNext: { status in
print("Authorization status \(status)") print("Authorization status \(status)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
manager.startUpdatingLocation() manager.startUpdatingLocation()

View File

@ -75,7 +75,7 @@ class CalculatorViewController: ViewController {
return a.tranformState(x) return a.tranformState(x)
} }
.debug("debugging") .debug("debugging")
.subscribeNext { [weak self] calState in .subscribe(onNext: { [weak self] calState in
self?.resultLabel.text = calState.inScreen self?.resultLabel.text = calState.inScreen
switch calState.action { switch calState.action {
case .operation(let operation): case .operation(let operation):
@ -92,7 +92,7 @@ class CalculatorViewController: ViewController {
default: default:
self?.lastSignLabel.text = "" self?.lastSignLabel.text = ""
} }
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }

View File

@ -79,9 +79,9 @@ class GitHubSearchRepositoriesViewController: ViewController, UITableViewDelegat
searchResult searchResult
.filter { $0.limitExceeded } .filter { $0.limitExceeded }
.driveNext { n in .drive(onNext: { n in
showAlert("Exceeded limit of 10 non authenticated requests per minute for GitHub API. Please wait a minute. :(\nhttps://developer.github.com/v3/#rate-limiting") showAlert("Exceeded limit of 10 non authenticated requests per minute for GitHub API. Please wait a minute. :(\nhttps://developer.github.com/v3/#rate-limiting")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// dismiss keyboard on scroll // dismiss keyboard on scroll

View File

@ -45,10 +45,10 @@ class GitHubSignupViewController2 : ViewController {
// bind results to { // bind results to {
viewModel.signupEnabled viewModel.signupEnabled
.driveNext { [weak self] valid in .drive(onNext: { [weak self] valid in
self?.signupOutlet.isEnabled = valid self?.signupOutlet.isEnabled = valid
self?.signupOutlet.alpha = valid ? 1.0 : 0.5 self?.signupOutlet.alpha = valid ? 1.0 : 0.5
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
viewModel.validatedUsername viewModel.validatedUsername
@ -68,17 +68,17 @@ class GitHubSignupViewController2 : ViewController {
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
viewModel.signedIn viewModel.signedIn
.driveNext { signedIn in .drive(onNext: { signedIn in
print("User signed in \(signedIn)") print("User signed in \(signedIn)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
//} //}
let tapBackground = UITapGestureRecognizer() let tapBackground = UITapGestureRecognizer()
tapBackground.rx_event tapBackground.rx_event
.subscribeNext { [weak self] _ in .subscribe(onNext: { [weak self] _ in
self?.view.endEditing(true) self?.view.endEditing(true)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
view.addGestureRecognizer(tapBackground) view.addGestureRecognizer(tapBackground)
} }

View File

@ -45,10 +45,10 @@ class GitHubSignupViewController1 : ViewController {
// bind results to { // bind results to {
viewModel.signupEnabled viewModel.signupEnabled
.subscribeNext { [weak self] valid in .subscribe(onNext: { [weak self] valid in
self?.signupOutlet.isEnabled = valid self?.signupOutlet.isEnabled = valid
self?.signupOutlet.alpha = valid ? 1.0 : 0.5 self?.signupOutlet.alpha = valid ? 1.0 : 0.5
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
viewModel.validatedUsername viewModel.validatedUsername
@ -68,17 +68,17 @@ class GitHubSignupViewController1 : ViewController {
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
viewModel.signedIn viewModel.signedIn
.subscribeNext { signedIn in .subscribe(onNext: { signedIn in
print("User signed in \(signedIn)") print("User signed in \(signedIn)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
//} //}
let tapBackground = UITapGestureRecognizer() let tapBackground = UITapGestureRecognizer()
tapBackground.rx_event tapBackground.rx_event
.subscribeNext { [weak self] _ in .subscribe(onNext: { [weak self] _ in
self?.view.endEditing(true) self?.view.endEditing(true)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
view.addGestureRecognizer(tapBackground) view.addGestureRecognizer(tapBackground)
} }

View File

@ -33,7 +33,7 @@ extension UIImagePickerController {
let imagePicker = UIImagePickerController() let imagePicker = UIImagePickerController()
let dismissDisposable = imagePicker let dismissDisposable = imagePicker
.rx_didCancel .rx_didCancel
.subscribeNext({ [weak imagePicker] in .subscribe(onNext: { [weak imagePicker] in
guard let imagePicker = imagePicker else { guard let imagePicker = imagePicker else {
return return
} }

View File

@ -46,35 +46,35 @@ class IntroductionExampleViewController : ViewController {
.map { (a, b) in .map { (a, b) in
return "\(a) + \(b) = \(a + b)" return "\(a) + \(b) = \(a + b)"
} }
.subscribeNext { result in .subscribe(onNext: { result in
if speech.isSpeaking { if speech.isSpeaking {
speech.stopSpeaking() speech.stopSpeaking()
} }
speech.startSpeaking(result) speech.startSpeaking(result)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
slider.rx_value slider.rx_value
.subscribeNext { value in .subscribe(onNext: { value in
self.sliderValue.stringValue = "\(Int(value))" self.sliderValue.stringValue = "\(Int(value))"
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
sliderValue.rx_text sliderValue.rx_text
.subscribeNext { value in .subscribe(onNext: { value in
let doubleValue = value.toDouble() ?? 0.0 let doubleValue = value.toDouble() ?? 0.0
self.slider.doubleValue = doubleValue self.slider.doubleValue = doubleValue
self.sliderValue.stringValue = "\(Int(doubleValue))" self.sliderValue.stringValue = "\(Int(doubleValue))"
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
disposeButton.rx_tap disposeButton.rx_tap
.subscribeNext { [weak self] _ in .subscribe(onNext: { [weak self] _ in
print("Unbind everything") print("Unbind everything")
self?.disposeBag = DisposeBag() self?.disposeBag = DisposeBag()
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
} }

View File

@ -34,16 +34,16 @@ class SimpleTableViewExampleViewController : ViewController {
tableView tableView
.rx_modelSelected(String.self) .rx_modelSelected(String.self)
.subscribeNext { value in .subscribe(onNext: { value in
DefaultWireframe.presentAlert("Tapped `\(value)`") DefaultWireframe.presentAlert("Tapped `\(value)`")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
tableView tableView
.rx_itemAccessoryButtonTapped .rx_itemAccessoryButtonTapped
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
DefaultWireframe.presentAlert("Tapped Detail @ \(indexPath.section),\(indexPath.row)") DefaultWireframe.presentAlert("Tapped Detail @ \(indexPath.section),\(indexPath.row)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }

View File

@ -58,9 +58,9 @@ class SimpleTableViewExampleSectionedViewController
.map { indexPath in .map { indexPath in
return (indexPath, dataSource.itemAtIndexPath(indexPath)) return (indexPath, dataSource.itemAtIndexPath(indexPath))
} }
.subscribeNext { indexPath, model in .subscribe(onNext: { indexPath, model in
DefaultWireframe.presentAlert("Tapped `\(model)` @ \(indexPath)") DefaultWireframe.presentAlert("Tapped `\(model)` @ \(indexPath)")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
tableView tableView

View File

@ -60,7 +60,7 @@ class SimpleValidationViewController : ViewController {
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
doSomethingOutlet.rx_tap doSomethingOutlet.rx_tap
.subscribeNext { [weak self] in self?.showAlert() } .subscribe(onNext: { [weak self] in self?.showAlert() })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }

View File

@ -122,16 +122,16 @@ class PartialUpdatesViewController : ViewController {
// touches // touches
partialUpdatesCollectionViewOutlet.rx_itemSelected partialUpdatesCollectionViewOutlet.rx_itemSelected
.subscribeNext { [weak self] i in .subscribe(onNext: { [weak self] i in
print("Let me guess, it's .... It's \(self?.generator.sections[i.section].items[i.item]), isn't it? Yeah, I've got it.") print("Let me guess, it's .... It's \(self?.generator.sections[i.section].items[i.item]), isn't it? Yeah, I've got it.")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
Observable.of(partialUpdatesTableViewOutlet.rx_itemSelected, reloadTableViewOutlet.rx_itemSelected) Observable.of(partialUpdatesTableViewOutlet.rx_itemSelected, reloadTableViewOutlet.rx_itemSelected)
.merge() .merge()
.subscribeNext { [weak self] i in .subscribe(onNext: { [weak self] i in
print("I have a feeling it's .... \(self?.generator.sections[i.section].items[i.item])?") print("I have a feeling it's .... \(self?.generator.sections[i.section].items[i.item])?")
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }

View File

@ -115,9 +115,9 @@ class TableViewWithEditingCommandsViewController: ViewController, UITableViewDel
let all = [viewModel.favoriteUsers, viewModel.users] let all = [viewModel.favoriteUsers, viewModel.users]
return all[i.section][i.row] return all[i.section][i.row]
} }
.subscribeNext { [weak self] user in .subscribe(onNext: { [weak self] user in
self?.showDetailsForUser(user) self?.showDetailsForUser(user)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
// customization using delegate // customization using delegate

View File

@ -93,11 +93,11 @@ class WikipediaSearchViewController: ViewController {
.filter { _ -> Bool in .filter { _ -> Bool in
return !searchController.isBeingPresented return !searchController.isBeingPresented
} }
.driveNext { _ in .drive(onNext: { _ in
if searchBar.isFirstResponder { if searchBar.isFirstResponder {
_ = searchBar.resignFirstResponder() _ = searchBar.resignFirstResponder()
} }
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
@ -106,9 +106,9 @@ class WikipediaSearchViewController: ViewController {
resultsTableView.rx_modelSelected(SearchResultViewModel.self) resultsTableView.rx_modelSelected(SearchResultViewModel.self)
.asDriver() .asDriver()
.driveNext { searchResult in .drive(onNext: { searchResult in
wireframe.open(url:searchResult.searchResult.URL) wireframe.open(url:searchResult.searchResult.URL)
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }

View File

@ -53,9 +53,9 @@ class ViewController: OSViewController {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
*/ */
_ = Observable<Int>.interval(1, scheduler: MainScheduler.instance) _ = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
.subscribeNext { _ in .subscribe(onNext: { _ in
print("Resource count \(RxSwift.resourceCount)") print("Resource count \(RxSwift.resourceCount)")
} })
Most efficient way to test for memory leaks is: Most efficient way to test for memory leaks is:
* navigate to your screen and use it * navigate to your screen and use it

View File

@ -23,11 +23,11 @@ public class RootViewController : UITableViewController {
_ = DefaultWireframe.sharedInstance _ = DefaultWireframe.sharedInstance
_ = MainScheduler.instance _ = MainScheduler.instance
let geoService = GeolocationService.instance let geoService = GeolocationService.instance
geoService.authorized.driveNext { _ in geoService.authorized.drive(onNext: { _ in
}.dispose() }).dispose()
geoService.location.driveNext { _ in geoService.location.drive(onNext: { _ in
}.dispose() }).dispose()
} }
} }

View File

@ -1,5 +1,5 @@
// //
// Observable+Extensions.swift // ObservableType+Extensions.swift
// Rx // Rx
// //
// Created by Krunoslav Zaher on 2/21/15. // Created by Krunoslav Zaher on 2/21/15.
@ -24,6 +24,53 @@ extension ObservableType {
return self.subscribeSafe(observer) return self.subscribeSafe(observer)
} }
#if DEBUG
/**
Subscribes an element handler, an error handler, a completion handler and disposed handler to an observable sequence.
- parameter onNext: Action to invoke for each element in the observable sequence.
- parameter onError: Action to invoke upon errored termination of the observable sequence.
- parameter onCompleted: Action to invoke upon graceful termination of the observable sequence.
- parameter onDisposed: Action to invoke upon any type of termination of sequence (if the sequence has
gracefully completed, errored, or if the generation is cancelled by disposing subscription).
- returns: Subscription object used to unsubscribe from the observable sequence.
*/
// @warn_unused_result(message: "http://git.io/rxs.ud")
public func subscribe(file: String = #file, line: UInt = #line, function: String = #function, onNext: ((E) -> Void)? = nil, onError: ((Swift.Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil)
-> Disposable {
let disposable: Disposable
if let disposed = onDisposed {
disposable = AnonymousDisposable(disposed)
}
else {
disposable = NopDisposable.instance
}
let observer = AnonymousObserver<E> { e in
switch e {
case .next(let value):
onNext?(value)
case .error(let e):
if let onError = onError {
onError(e)
}
else {
print("Received unhandled error: \(file):\(line):\(function) -> \(e)")
}
disposable.dispose()
case .completed:
onCompleted?()
disposable.dispose()
}
}
return BinaryDisposable(
self.subscribeSafe(observer),
disposable
)
}
#else
/** /**
Subscribes an element handler, an error handler, a completion handler and disposed handler to an observable sequence. Subscribes an element handler, an error handler, a completion handler and disposed handler to an observable sequence.
@ -64,6 +111,7 @@ extension ObservableType {
disposable disposable
) )
} }
#endif
/** /**
Subscribes an element handler to an observable sequence. Subscribes an element handler to an observable sequence.
@ -72,6 +120,7 @@ extension ObservableType {
- returns: Subscription object used to unsubscribe from the observable sequence. - returns: Subscription object used to unsubscribe from the observable sequence.
*/ */
// @warn_unused_result(message: "http://git.io/rxs.ud") // @warn_unused_result(message: "http://git.io/rxs.ud")
@available(*, deprecated, renamed: "subscribe(onNext:)")
public func subscribeNext(_ onNext: (E) -> Void) public func subscribeNext(_ onNext: (E) -> Void)
-> Disposable { -> Disposable {
let observer = AnonymousObserver<E> { e in let observer = AnonymousObserver<E> { e in
@ -89,6 +138,7 @@ extension ObservableType {
- returns: Subscription object used to unsubscribe from the observable sequence. - returns: Subscription object used to unsubscribe from the observable sequence.
*/ */
// @warn_unused_result(message: "http://git.io/rxs.ud") // @warn_unused_result(message: "http://git.io/rxs.ud")
@available(*, deprecated, renamed: "subscribe(onError:)")
public func subscribeError(_ onError: (Swift.Error) -> Void) public func subscribeError(_ onError: (Swift.Error) -> Void)
-> Disposable { -> Disposable {
let observer = AnonymousObserver<E> { e in let observer = AnonymousObserver<E> { e in
@ -106,6 +156,7 @@ extension ObservableType {
- returns: Subscription object used to unsubscribe from the observable sequence. - returns: Subscription object used to unsubscribe from the observable sequence.
*/ */
// @warn_unused_result(message: "http://git.io/rxs.ud") // @warn_unused_result(message: "http://git.io/rxs.ud")
@available(*, deprecated, renamed: "subscribe(onCompleted:)")
public func subscribeCompleted(_ onCompleted: () -> Void) public func subscribeCompleted(_ onCompleted: () -> Void)
-> Disposable { -> Disposable {
let observer = AnonymousObserver<E> { e in let observer = AnonymousObserver<E> { e in

View File

@ -49,9 +49,9 @@ compareTwoImplementations(benchmarkTime: true, benchmarkMemory: false, first: {
/*.filter { _ in true }//){ x, _ in x } /*.filter { _ in true }//){ x, _ in x }
.map { $0 } .map { $0 }
.flatMap { Observable.just($0) }*/ .flatMap { Observable.just($0) }*/
.subscribeNext { _ in .subscribe(onNext: { _ in
} })
for i in 0..<100 { for i in 0..<100 {

View File

@ -76,9 +76,9 @@ class DelegateProxyTest : RxTest {
var observedFeedRequest = false var observedFeedRequest = false
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:))) let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:)))
.subscribeNext { n in .subscribe(onNext: { n in
observedFeedRequest = true observedFeedRequest = true
} })
defer { defer {
d.dispose() d.dispose()
} }
@ -99,9 +99,9 @@ class DelegateProxyTest : RxTest {
var nMessages = 0 var nMessages = 0
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:))) let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:)))
.subscribeNext { n in .subscribe(onNext: { n in
nMessages += 1 nMessages += 1
} })
XCTAssertTrue(nMessages == 0) XCTAssertTrue(nMessages == 0)
view.delegate?.threeDView?(view, didLearnSomething: "Psssst ...") view.delegate?.threeDView?(view, didLearnSomething: "Psssst ...")
@ -137,10 +137,10 @@ class DelegateProxyTest : RxTest {
var receivedArgument: IndexPath? = nil var receivedArgument: IndexPath? = nil
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:))) let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:)))
.subscribeNext { n in .subscribe(onNext: { n in
let ip = n[1] as! IndexPath let ip = n[1] as! IndexPath
receivedArgument = ip receivedArgument = ip
} })
defer { defer {
d.dispose() d.dispose()
} }
@ -167,9 +167,9 @@ class DelegateProxyTest : RxTest {
_ = view _ = view
.rx_proxy .rx_proxy
.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:))) .observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:)))
.subscribeCompleted { .subscribe(onCompleted: {
completed = true completed = true
} })
view.delegate?.threeDView?(view, didGetXXX: sentArgument) view.delegate?.threeDView?(view, didGetXXX: sentArgument)
} }
@ -209,9 +209,9 @@ extension DelegateProxyTest {
completed = true completed = true
}) })
_ = (control as! NSObject).rx_deallocated.subscribeNext { _ in _ = (control as! NSObject).rx_deallocated.subscribe(onNext: { _ in
deallocated = true deallocated = true
} })
} }
XCTAssertTrue(receivedValue == nil) XCTAssertTrue(receivedValue == nil)

View File

@ -33,7 +33,7 @@ class Parent : NSObject {
super.init() super.init()
self.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false) self.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false)
.subscribeNext(callback) .subscribe(onNext: callback)
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
@ -48,7 +48,7 @@ class Child : NSObject {
init(parent: ParentWithChild, callback: (String?) -> Void) { init(parent: ParentWithChild, callback: (String?) -> Void) {
super.init() super.init()
parent.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false) parent.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false)
.subscribeNext(callback) .subscribe(onNext: callback)
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
} }
@ -144,7 +144,7 @@ extension KVOObservableTests {
var latest: String? var latest: String?
let d = os .subscribeNext { latest = $0 } let d = os.subscribe(onNext: { latest = $0 })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
@ -178,7 +178,7 @@ extension KVOObservableTests {
var latest: String? var latest: String?
let d = os .subscribeNext { latest = $0 } let d = os.subscribe(onNext: { latest = $0 })
XCTAssertTrue(latest == "0") XCTAssertTrue(latest == "0")
@ -212,7 +212,7 @@ extension KVOObservableTests {
var latest: String? var latest: String?
let d = os .subscribeNext { latest = $0 } let d = os.subscribe(onNext: { latest = $0 })
XCTAssertTrue(latest == "0") XCTAssertTrue(latest == "0")
@ -248,9 +248,9 @@ extension KVOObservableTests {
} }
_ = parent.rx_deallocated _ = parent.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == "") XCTAssertTrue(latest == "")
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -275,9 +275,9 @@ extension KVOObservableTests {
} }
_ = parent.rx_deallocated _ = parent.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == "") XCTAssertTrue(latest == "")
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -306,14 +306,14 @@ extension KVOObservableTests {
var root: HasStrongProperty! = HasStrongProperty() var root: HasStrongProperty! = HasStrongProperty()
_ = root.rx_observeWeakly(String.self, "property") _ = root.rx_observeWeakly(String.self, "property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
XCTAssertTrue(!disposed) XCTAssertTrue(!disposed)
@ -336,14 +336,14 @@ extension KVOObservableTests {
var root: HasWeakProperty! = HasWeakProperty() var root: HasWeakProperty! = HasWeakProperty()
_ = root.rx_observeWeakly(String.self, "property") _ = root.rx_observeWeakly(String.self, "property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
XCTAssertTrue(!disposed) XCTAssertTrue(!disposed)
@ -370,14 +370,14 @@ extension KVOObservableTests {
var root: HasWeakProperty! = HasWeakProperty() var root: HasWeakProperty! = HasWeakProperty()
_ = root.rx_observeWeakly(String.self, "property.property") _ = root.rx_observeWeakly(String.self, "property.property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -419,14 +419,14 @@ extension KVOObservableTests {
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
_ = root.rx_observeWeakly(String.self, "property.property") _ = root.rx_observeWeakly(String.self, "property.property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == "1") XCTAssertTrue(latest == "1")
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -447,14 +447,14 @@ extension KVOObservableTests {
var root: HasStrongProperty! = HasStrongProperty() var root: HasStrongProperty! = HasStrongProperty()
_ = root.rx_observeWeakly(String.self, "property.property") _ = root.rx_observeWeakly(String.self, "property.property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -496,14 +496,14 @@ extension KVOObservableTests {
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
_ = root.rx_observeWeakly(String.self, "property.property") _ = root.rx_observeWeakly(String.self, "property.property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
_ = root.rx_deallocated _ = root.rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
disposed = true disposed = true
} })
XCTAssertTrue(latest == "1") XCTAssertTrue(latest == "1")
XCTAssertTrue(disposed == false) XCTAssertTrue(disposed == false)
@ -536,9 +536,9 @@ extension KVOObservableTests {
let observable = root.rx_observeWeakly(NSObject.self, "property.property") let observable = root.rx_observeWeakly(NSObject.self, "property.property")
_ = observable _ = observable
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest! === one) XCTAssertTrue(latest! === one)
@ -553,9 +553,9 @@ extension KVOObservableTests {
var gone = false var gone = false
let (child, latest, dealloc) = _testObserveWeak_Strong_Weak_Observe_NilLastPropertyBecauseOfWeak() let (child, latest, dealloc) = _testObserveWeak_Strong_Weak_Observe_NilLastPropertyBecauseOfWeak()
_ = dealloc _ = dealloc
.subscribeNext { n in .subscribe(onNext: { n in
gone = true gone = true
} })
XCTAssertTrue(gone) XCTAssertTrue(gone)
XCTAssertTrue(child.property == nil) XCTAssertTrue(child.property == nil)
@ -579,9 +579,9 @@ extension KVOObservableTests {
let observable = root.rx_observeWeakly(NSObject.self, "property.property.property") let observable = root.rx_observeWeakly(NSObject.self, "property.property.property")
_ = observable _ = observable
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
@ -602,9 +602,9 @@ extension KVOObservableTests {
var gone = false var gone = false
_ = deallocatedMiddle _ = deallocatedMiddle
.subscribeCompleted { .subscribe(onCompleted: {
gone = true gone = true
} })
XCTAssertTrue(gone) XCTAssertTrue(gone)
XCTAssertTrue(root.property == nil) XCTAssertTrue(root.property == nil)
@ -622,9 +622,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(String.self, "property") .rx_observeWeakly(String.self, "property")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == "a") XCTAssertTrue(latest == "a")
@ -632,9 +632,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -653,9 +653,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(String.self, "property", options: .new) .rx_observeWeakly(String.self, "property", options: .new)
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
@ -667,9 +667,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -687,9 +687,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(NSRect.self, "frame") let disposable = root.rx_observe(NSRect.self, "frame")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == root.frame) XCTAssertTrue(latest == root.frame)
root.frame = NSRect(x: -2, y: 0, width: 0, height: 1) root.frame = NSRect(x: -2, y: 0, width: 0, height: 1)
@ -700,9 +700,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -723,9 +723,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let d = root.rx_observe(CGSize.self, "frame") let d = root.rx_observe(CGSize.self, "frame")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
defer { defer {
d.dispose() d.dispose()
@ -741,9 +741,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -759,9 +759,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let d = root.rx_observe(CGRect.self, "frame") let d = root.rx_observe(CGRect.self, "frame")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
defer { defer {
d.dispose() d.dispose()
@ -777,9 +777,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -795,9 +795,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let d = root.rx_observe(CGSize.self, "size") let d = root.rx_observe(CGSize.self, "size")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
defer { defer {
d.dispose() d.dispose()
@ -813,9 +813,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -831,9 +831,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let d = root.rx_observe(CGPoint.self, "point") let d = root.rx_observe(CGPoint.self, "point")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
defer { defer {
d.dispose() d.dispose()
} }
@ -848,9 +848,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -868,9 +868,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(CGRect.self, "frame") .rx_observeWeakly(CGRect.self, "frame")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == root.frame) XCTAssertTrue(latest == root.frame)
root.frame = CGRect(x: -2, y: 0, width: 0, height: 1) root.frame = CGRect(x: -2, y: 0, width: 0, height: 1)
@ -881,9 +881,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -900,9 +900,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(CGSize.self, "size") .rx_observeWeakly(CGSize.self, "size")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == root.size) XCTAssertTrue(latest == root.size)
root.size = CGSize(width: 56, height: 1) root.size = CGSize(width: 56, height: 1)
@ -913,9 +913,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -932,9 +932,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(CGPoint.self, "point") .rx_observeWeakly(CGPoint.self, "point")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == root.point) XCTAssertTrue(latest == root.point)
@ -946,9 +946,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -965,9 +965,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(NSNumber.self, "integer") .rx_observeWeakly(NSNumber.self, "integer")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n?.intValue latest = n?.intValue
} })
XCTAssertTrue(latest == root.integer) XCTAssertTrue(latest == root.integer)
root.integer = 10 root.integer = 10
@ -978,9 +978,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -994,9 +994,9 @@ extension KVOObservableTests {
var lastError: Swift.Error? = nil var lastError: Swift.Error? = nil
_ = root.rx_observeWeakly(NSNumber.self, "notExist") _ = root.rx_observeWeakly(NSNumber.self, "notExist")
.subscribeError { error in .subscribe(onError: { error in
lastError = error lastError = error
} })
XCTAssertTrue(lastError != nil) XCTAssertTrue(lastError != nil)
lastError = nil lastError = nil
@ -1005,9 +1005,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1020,9 +1020,9 @@ extension KVOObservableTests {
var lastError: Swift.Error? = nil var lastError: Swift.Error? = nil
_ = root.rx_observeWeakly(NSNumber.self, "property.notExist") _ = root.rx_observeWeakly(NSNumber.self, "property.notExist")
.subscribeError { error in .subscribe(onError: { error in
lastError = error lastError = error
} })
XCTAssertTrue(lastError == nil) XCTAssertTrue(lastError == nil)
@ -1034,9 +1034,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1056,9 +1056,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(Int.self, "integer") let disposable = root.rx_observe(Int.self, "integer")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == 1) XCTAssertTrue(latest == 1)
root.integer = 2 root.integer = 2
@ -1069,9 +1069,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1089,9 +1089,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(UInt.self, "uinteger") let disposable = root.rx_observe(UInt.self, "uinteger")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == 1) XCTAssertTrue(latest == 1)
root.uinteger = 2 root.uinteger = 2
@ -1102,9 +1102,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1126,9 +1126,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(Int.self, "integer") .rx_observeWeakly(Int.self, "integer")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == 1) XCTAssertTrue(latest == 1)
@ -1140,9 +1140,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1159,9 +1159,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(UInt.self, "uinteger") .rx_observeWeakly(UInt.self, "uinteger")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == 1) XCTAssertTrue(latest == 1)
@ -1173,9 +1173,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1195,9 +1195,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(IntEnum.self, "intEnum") let disposable = root.rx_observe(IntEnum.self, "intEnum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.intEnum = .two root.intEnum = .two
@ -1208,9 +1208,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1228,9 +1228,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(Int32Enum.self, "int32Enum") let disposable = root.rx_observe(Int32Enum.self, "int32Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.int32Enum = .two root.int32Enum = .two
@ -1241,9 +1241,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1261,9 +1261,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(Int64Enum.self, "int64Enum") let disposable = root.rx_observe(Int64Enum.self, "int64Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.int64Enum = .two root.int64Enum = .two
@ -1274,9 +1274,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1295,9 +1295,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(UIntEnum.self, "uintEnum") let disposable = root.rx_observe(UIntEnum.self, "uintEnum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uintEnum = .two root.uintEnum = .two
@ -1308,9 +1308,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1328,9 +1328,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(UInt32Enum.self, "uint32Enum") let disposable = root.rx_observe(UInt32Enum.self, "uint32Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uint32Enum = .two root.uint32Enum = .two
@ -1341,9 +1341,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1361,9 +1361,9 @@ extension KVOObservableTests {
XCTAssertTrue(latest == nil) XCTAssertTrue(latest == nil)
let disposable = root.rx_observe(UInt64Enum.self, "uint64Enum") let disposable = root.rx_observe(UInt64Enum.self, "uint64Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uint64Enum = .two root.uint64Enum = .two
@ -1374,9 +1374,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1398,9 +1398,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(IntEnum.self, "intEnum") .rx_observeWeakly(IntEnum.self, "intEnum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.intEnum = .two root.intEnum = .two
@ -1411,9 +1411,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1430,9 +1430,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(Int32Enum.self, "int32Enum") .rx_observeWeakly(Int32Enum.self, "int32Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.int32Enum = .two root.int32Enum = .two
@ -1443,9 +1443,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1462,9 +1462,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(Int64Enum.self, "int64Enum") .rx_observeWeakly(Int64Enum.self, "int64Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.int64Enum = .two root.int64Enum = .two
@ -1475,9 +1475,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1494,9 +1494,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(UIntEnum.self, "uintEnum") .rx_observeWeakly(UIntEnum.self, "uintEnum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uintEnum = .two root.uintEnum = .two
@ -1507,9 +1507,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1526,9 +1526,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(UInt32Enum.self, "uint32Enum") .rx_observeWeakly(UInt32Enum.self, "uint32Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uint32Enum = .two root.uint32Enum = .two
@ -1539,9 +1539,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil
@ -1558,9 +1558,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_observeWeakly(UInt32Enum.self, "uint64Enum") .rx_observeWeakly(UInt32Enum.self, "uint64Enum")
.subscribeNext { n in .subscribe(onNext: { n in
latest = n latest = n
} })
XCTAssertTrue(latest == .one) XCTAssertTrue(latest == .one)
root.uint64Enum = .two root.uint64Enum = .two
@ -1571,9 +1571,9 @@ extension KVOObservableTests {
_ = root _ = root
.rx_deallocated .rx_deallocated
.subscribeCompleted { .subscribe(onCompleted: {
rootDeallocated = true rootDeallocated = true
} })
root = nil root = nil

View File

@ -22,9 +22,9 @@ class NSNotificationCenterTests : RxTest {
XCTAssertTrue(numberOfNotifications == 0) XCTAssertTrue(numberOfNotifications == 0)
let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: nil) let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: nil)
.subscribeNext { n in .subscribe(onNext: { n in
numberOfNotifications += 1 numberOfNotifications += 1
} })
XCTAssertTrue(numberOfNotifications == 0) XCTAssertTrue(numberOfNotifications == 0)
@ -58,9 +58,9 @@ class NSNotificationCenterTests : RxTest {
XCTAssertTrue(numberOfNotifications == 0) XCTAssertTrue(numberOfNotifications == 0)
let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: targetObject) let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: targetObject)
.subscribeNext { n in .subscribe(onNext: { n in
numberOfNotifications += 1 numberOfNotifications += 1
} })
XCTAssertTrue(numberOfNotifications == 0) XCTAssertTrue(numberOfNotifications == 0)

View File

@ -27,9 +27,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
fired = true fired = true
} })
XCTAssertFalse(fired) XCTAssertFalse(fired)
@ -48,9 +48,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeCompleted { .subscribe(onCompleted: {
fired = true fired = true
} })
XCTAssertFalse(fired) XCTAssertFalse(fired)
@ -69,9 +69,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
fired = true fired = true
} })
.dispose() .dispose()
XCTAssertFalse(fired) XCTAssertFalse(fired)
@ -95,9 +95,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
fired = true fired = true
} })
XCTAssertFalse(fired) XCTAssertFalse(fired)
@ -116,9 +116,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeCompleted { .subscribe(onCompleted: {
fired = true fired = true
} })
XCTAssertFalse(fired) XCTAssertFalse(fired)
@ -137,9 +137,9 @@ extension NSObjectTests {
.map { _ in .map { _ in
return 1 return 1
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
fired = true fired = true
} })
.dispose() .dispose()
XCTAssertFalse(fired) XCTAssertFalse(fired)

View File

@ -35,9 +35,9 @@ extension RxTest {
}) })
_ = control.rx_deallocated.subscribeNext { _ in _ = control.rx_deallocated.subscribe(onNext: { _ in
deallocated = true deallocated = true
} })
control = nil control = nil
} }
@ -77,9 +77,9 @@ extension RxTest {
completed = true completed = true
}) })
_ = control.rx_deallocated.subscribeNext { _ in _ = control.rx_deallocated.subscribe(onNext: { _ in
deallocated = true deallocated = true
} })
outerDisposable.disposable = disposable outerDisposable.disposable = disposable
} }
@ -101,9 +101,9 @@ extension RxTest {
observable.bindTo(propertyObserver).addDisposableTo(disposeBag) observable.bindTo(propertyObserver).addDisposableTo(disposeBag)
_ = control.rx_deallocated.subscribeNext { _ in _ = control.rx_deallocated.subscribe(onNext: { _ in
deallocated = true deallocated = true
} })
} }
XCTAssertTrue(deallocated) XCTAssertTrue(deallocated)

View File

@ -497,8 +497,8 @@ extension SentMessageTest {
let disposeBag = DisposeBag() let disposeBag = DisposeBag()
target.rx_observe(NSArray.self, "messages") target.rx_observe(NSArray.self, "messages")
.subscribeNext { _ in .subscribe(onNext: { _ in
} })
.addDisposableTo(disposeBag) .addDisposableTo(disposeBag)
do { do {
@ -576,13 +576,13 @@ extension SentMessageTest {
let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledBool(toSay:))) let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledBool(toSay:)))
let kvo = target.rx_observe(NSArray.self, "messages") let kvo = target.rx_observe(NSArray.self, "messages")
.subscribeNext { _ in .subscribe(onNext: { _ in
} })
var recordedMessages = [MethodParameters]() var recordedMessages = [MethodParameters]()
let methodObserving = messages.subscribeNext { n in let methodObserving = messages.subscribe(onNext: { n in
recordedMessages.append(n) recordedMessages.append(n)
} })
target.justCalledBool(toSay: true) target.justCalledBool(toSay: true)

View File

@ -30,9 +30,9 @@ class UICollectionViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = collectionView.rx_itemSelected let subscription = collectionView.rx_itemSelected
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: testRow) collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: testRow)
@ -48,9 +48,9 @@ class UICollectionViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = collectionView.rx_itemDeselected let subscription = collectionView.rx_itemDeselected
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: testRow) collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: testRow)
@ -128,9 +128,9 @@ class UICollectionViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = collectionView.rx_modelSelected(Int.self) let s = collectionView.rx_modelSelected(Int.self)
.subscribeNext { (item: Int) in .subscribe(onNext: { (item: Int) in
selectedItem = item selectedItem = item
} })
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0)) collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0))
@ -159,9 +159,9 @@ class UICollectionViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = collectionView.rx_modelSelected(Int.self) let s = collectionView.rx_modelSelected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0)) collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0))
@ -190,9 +190,9 @@ class UICollectionViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = collectionView.rx_modelDeselected(Int.self) let s = collectionView.rx_modelDeselected(Int.self)
.subscribeNext { (item: Int) in .subscribe(onNext: { (item: Int) in
selectedItem = item selectedItem = item
} })
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0)) collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0))
@ -221,9 +221,9 @@ class UICollectionViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = collectionView.rx_modelDeselected(Int.self) let s = collectionView.rx_modelDeselected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0)) collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0))
@ -270,9 +270,9 @@ extension UICollectionViewTests {
let dataSource = SectionedViewDataSourceMock() let dataSource = SectionedViewDataSourceMock()
dataSourceSubscription = items.bindTo(collectionView.rx_items(dataSource: dataSource)) dataSourceSubscription = items.bindTo(collectionView.rx_items(dataSource: dataSource))
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
} }
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
@ -293,9 +293,9 @@ extension UICollectionViewTests {
let dataSource = SectionedViewDataSourceMock() let dataSource = SectionedViewDataSourceMock()
_ = items.bindTo(collectionView.rx_items(dataSource: dataSource)) _ = items.bindTo(collectionView.rx_items(dataSource: dataSource))
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
} }
@ -313,9 +313,9 @@ extension UICollectionViewTests {
let dataSource = SectionedViewDataSourceMock() let dataSource = SectionedViewDataSourceMock()
_ = collectionView.rx_setDataSource(dataSource) _ = collectionView.rx_setDataSource(dataSource)
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
} }

View File

@ -28,9 +28,9 @@ class UIPickerViewTests: RxTest {
var result: (row: Int, component: Int)? var result: (row: Int, component: Int)?
autoreleasepool { autoreleasepool {
_ = pickerView.rx_itemSelected.subscribeNext { (element) in _ = pickerView.rx_itemSelected.subscribe(onNext: { (element) in
result = element result = element
} })
pickerView.delegate!.pickerView!(pickerView, pickerView.delegate!.pickerView!(pickerView,
didSelectRow: row, didSelectRow: row,
inComponent: component) inComponent: component)

View File

@ -52,9 +52,9 @@ extension UIScrollViewTests {
let delegate = MockScrollViewDelegate() let delegate = MockScrollViewDelegate()
_ = scrollView.rx_setDelegate(delegate) _ = scrollView.rx_setDelegate(delegate)
_ = delegate.rx_deallocated.subscribeNext { _ in _ = delegate.rx_deallocated.subscribe(onNext: { _ in
delegateDeallocated = true delegateDeallocated = true
} })
XCTAssert(delegateDeallocated == false) XCTAssert(delegateDeallocated == false)
} }

View File

@ -25,9 +25,9 @@ class UISearchBarTests : RxTest {
var latestText: String! = nil var latestText: String! = nil
// search bar should dispose this itself // search bar should dispose this itself
_ = searchBar.rx_text.subscribeNext { text in _ = searchBar.rx_text.subscribe(onNext: { text in
latestText = text latestText = text
} })
XCTAssertEqual(latestText, "") XCTAssertEqual(latestText, "")
@ -56,9 +56,9 @@ class UISearchBarTests : RxTest {
var latestSelectedScopeIndex: Int = -1 var latestSelectedScopeIndex: Int = -1
_ = searchBar.rx_selectedScopeButtonIndex.subscribeNext { index in _ = searchBar.rx_selectedScopeButtonIndex.subscribe(onNext: { index in
latestSelectedScopeIndex = index latestSelectedScopeIndex = index
} })
XCTAssertEqual(latestSelectedScopeIndex, 0) XCTAssertEqual(latestSelectedScopeIndex, 0)
@ -83,9 +83,9 @@ class UISearchBarTests : RxTest {
var tapped = false var tapped = false
let _ = searchBar.rx_cancelButtonClicked.subscribeNext { _ in let _ = searchBar.rx_cancelButtonClicked.subscribe(onNext: { _ in
tapped = true tapped = true
} })
XCTAssertFalse(tapped) XCTAssertFalse(tapped)
searchBar.delegate!.searchBarCancelButtonClicked!(searchBar) searchBar.delegate!.searchBarCancelButtonClicked!(searchBar)
@ -103,9 +103,9 @@ class UISearchBarTests : RxTest {
var tapped = false var tapped = false
let _ = searchBar.rx_searchButtonClicked.subscribeNext { _ in let _ = searchBar.rx_searchButtonClicked.subscribe(onNext: { _ in
tapped = true tapped = true
} })
XCTAssertFalse(tapped) XCTAssertFalse(tapped)
searchBar.delegate!.searchBarSearchButtonClicked!(searchBar) searchBar.delegate!.searchBarSearchButtonClicked!(searchBar)

View File

@ -32,9 +32,9 @@ extension UITabBarTests {
var returnedItems: [UITabBarItem]! var returnedItems: [UITabBarItem]!
_ = subject.rx_willBeginCustomizing _ = subject.rx_willBeginCustomizing
.subscribeNext { i in .subscribe(onNext: { i in
returnedItems = i returnedItems = i
} })
subject.delegate!.tabBar!(subject, willBeginCustomizing: items) subject.delegate!.tabBar!(subject, willBeginCustomizing: items)
XCTAssertEqual(returnedItems, items) XCTAssertEqual(returnedItems, items)
@ -47,9 +47,9 @@ extension UITabBarTests {
var returnedItems: [UITabBarItem]! var returnedItems: [UITabBarItem]!
_ = subject.rx_didBeginCustomizing _ = subject.rx_didBeginCustomizing
.subscribeNext { i in .subscribe(onNext: { i in
returnedItems = i returnedItems = i
} })
subject.delegate!.tabBar!(subject, didBeginCustomizing: items) subject.delegate!.tabBar!(subject, didBeginCustomizing: items)
@ -64,10 +64,10 @@ extension UITabBarTests {
var changed: Bool! var changed: Bool!
_ = subject.rx_willEndCustomizing _ = subject.rx_willEndCustomizing
.subscribeNext { (i, c) in .subscribe(onNext: { (i, c) in
returnedItems = i returnedItems = i
changed = c changed = c
} })
subject.delegate!.tabBar!(subject, willEndCustomizing: items, changed: true) subject.delegate!.tabBar!(subject, willEndCustomizing: items, changed: true)
XCTAssertEqual(returnedItems, items) XCTAssertEqual(returnedItems, items)
@ -82,10 +82,10 @@ extension UITabBarTests {
var changed: Bool! var changed: Bool!
_ = subject.rx_didEndCustomizing _ = subject.rx_didEndCustomizing
.subscribeNext { (i, c) in .subscribe(onNext: { (i, c) in
returnedItems = i returnedItems = i
changed = c changed = c
} })
subject.delegate!.tabBar!(subject, didEndCustomizing: items, changed: true) subject.delegate!.tabBar!(subject, didEndCustomizing: items, changed: true)
@ -108,9 +108,9 @@ extension UITabBarTests {
var returnedItem: UITabBarItem! var returnedItem: UITabBarItem!
_ = subject.rx_didSelectItem _ = subject.rx_didSelectItem
.subscribeNext { i in .subscribe(onNext: { i in
returnedItem = i returnedItem = i
} })
subject.delegate!.tabBar!(subject, didSelect: item) subject.delegate!.tabBar!(subject, didSelect: item)

View File

@ -34,9 +34,9 @@ class UITableViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = tableView.rx_itemSelected let subscription = tableView.rx_itemSelected
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
tableView.delegate!.tableView!(tableView, didSelectRowAt: testRow) tableView.delegate!.tableView!(tableView, didSelectRowAt: testRow)
@ -51,9 +51,9 @@ class UITableViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = tableView.rx_itemDeselected let subscription = tableView.rx_itemDeselected
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
tableView.delegate!.tableView!(tableView, didDeselectRowAt: testRow) tableView.delegate!.tableView!(tableView, didDeselectRowAt: testRow)
@ -68,9 +68,9 @@ class UITableViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = tableView.rx_itemAccessoryButtonTapped let subscription = tableView.rx_itemAccessoryButtonTapped
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
tableView.delegate!.tableView!(tableView, accessoryButtonTappedForRowWith: testRow) tableView.delegate!.tableView!(tableView, accessoryButtonTappedForRowWith: testRow)
@ -85,9 +85,9 @@ class UITableViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = tableView.rx_itemDeleted let subscription = tableView.rx_itemDeleted
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
tableView.dataSource!.tableView!(tableView, commit: .delete, forRowAt: testRow) tableView.dataSource!.tableView!(tableView, commit: .delete, forRowAt: testRow)
@ -102,9 +102,9 @@ class UITableViewTests : RxTest {
var resultIndexPath: IndexPath? = nil var resultIndexPath: IndexPath? = nil
let subscription = tableView.rx_itemInserted let subscription = tableView.rx_itemInserted
.subscribeNext { indexPath in .subscribe(onNext: { indexPath in
resultIndexPath = indexPath resultIndexPath = indexPath
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
tableView.dataSource!.tableView!(tableView, commit: .insert, forRowAt: testRow) tableView.dataSource!.tableView!(tableView, commit: .insert, forRowAt: testRow)
@ -120,10 +120,10 @@ class UITableViewTests : RxTest {
var resultCell: UITableViewCell? = nil var resultCell: UITableViewCell? = nil
let subscription = tableView.rx_willDisplayCell let subscription = tableView.rx_willDisplayCell
.subscribeNext { (cell, indexPath) in .subscribe(onNext: { (cell, indexPath) in
resultIndexPath = indexPath resultIndexPath = indexPath
resultCell = cell resultCell = cell
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
let testCell = UITableViewCell() let testCell = UITableViewCell()
@ -141,10 +141,10 @@ class UITableViewTests : RxTest {
var resultCell: UITableViewCell? = nil var resultCell: UITableViewCell? = nil
let subscription = tableView.rx_didEndDisplayingCell let subscription = tableView.rx_didEndDisplayingCell
.subscribeNext { (cell, indexPath) in .subscribe(onNext: { (cell, indexPath) in
resultIndexPath = indexPath resultIndexPath = indexPath
resultCell = cell resultCell = cell
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
let testCell = UITableViewCell() let testCell = UITableViewCell()
@ -162,10 +162,10 @@ class UITableViewTests : RxTest {
var resultIndexPath2: IndexPath? = nil var resultIndexPath2: IndexPath? = nil
let subscription = tableView.rx_itemMoved let subscription = tableView.rx_itemMoved
.subscribeNext { (indexPath, indexPath2) in .subscribe(onNext: { (indexPath, indexPath2) in
resultIndexPath = indexPath resultIndexPath = indexPath
resultIndexPath2 = indexPath2 resultIndexPath2 = indexPath2
} })
let testRow = IndexPath(row: 1, section: 0) let testRow = IndexPath(row: 1, section: 0)
let testRow2 = IndexPath(row: 1, section: 0) let testRow2 = IndexPath(row: 1, section: 0)
@ -237,9 +237,9 @@ class UITableViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = tableView.rx_modelSelected(Int.self) let s = tableView.rx_modelSelected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0)) tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0))
@ -267,9 +267,9 @@ class UITableViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = tableView.rx_modelSelected(Int.self) let s = tableView.rx_modelSelected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0)) tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0))
@ -296,9 +296,9 @@ class UITableViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = tableView.rx_modelDeselected(Int.self) let s = tableView.rx_modelDeselected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0)) tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0))
@ -326,9 +326,9 @@ class UITableViewTests : RxTest {
var selectedItem: Int? = nil var selectedItem: Int? = nil
let s = tableView.rx_modelDeselected(Int.self) let s = tableView.rx_modelDeselected(Int.self)
.subscribeNext { item in .subscribe(onNext: { item in
selectedItem = item selectedItem = item
} })
tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0)) tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0))
@ -372,9 +372,9 @@ extension UITableViewTests {
let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
dataSourceSubscription = items.bindTo(tableView.rx_items(dataSource: dataSource)) dataSourceSubscription = items.bindTo(tableView.rx_items(dataSource: dataSource))
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
} }
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
@ -394,9 +394,9 @@ extension UITableViewTests {
let dataSource = SectionedViewDataSourceMock() let dataSource = SectionedViewDataSourceMock()
_ = items.bindTo(tableView.rx_items(dataSource: dataSource)) _ = items.bindTo(tableView.rx_items(dataSource: dataSource))
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
} }
@ -414,9 +414,9 @@ extension UITableViewTests {
let dataSource = SectionedViewDataSourceMock() let dataSource = SectionedViewDataSourceMock()
_ = tableView.rx_setDataSource(dataSource) _ = tableView.rx_setDataSource(dataSource)
_ = dataSource.rx_deallocated.subscribeNext { _ in _ = dataSource.rx_deallocated.subscribe(onNext: { _ in
dataSourceDeallocated = true dataSourceDeallocated = true
} })
XCTAssert(dataSourceDeallocated == false) XCTAssert(dataSourceDeallocated == false)
} }

View File

@ -24,9 +24,9 @@ extension AnonymousObservableTests {
var elements = [Int]() var elements = [Int]()
let d = a.subscribeNext { n in let d = a.subscribe(onNext: { n in
elements.append(n) elements.append(n)
} })
XCTAssertEqual(elements, []) XCTAssertEqual(elements, [])
@ -48,9 +48,9 @@ extension AnonymousObservableTests {
var elements = [Int]() var elements = [Int]()
_ = a.subscribeNext { n in _ = a.subscribe(onNext: { n in
elements.append(n) elements.append(n)
} })
XCTAssertEqual(elements, []) XCTAssertEqual(elements, [])
@ -72,9 +72,9 @@ extension AnonymousObservableTests {
var elements = [Int]() var elements = [Int]()
_ = a.subscribeNext { n in _ = a.subscribe(onNext: { n in
elements.append(n) elements.append(n)
} })
XCTAssertEqual(elements, []) XCTAssertEqual(elements, [])

View File

@ -65,14 +65,14 @@ class AssumptionsTest : RxTest {
func testFunctionReturnValueOverload() { func testFunctionReturnValueOverload() {
_ = returnSomething() _ = returnSomething()
.subscribeNext { (n: AnyObject?) in .subscribe(onNext: { (n: AnyObject?) in
XCTAssertEqual(n as? NSNull, NSNull()) XCTAssertEqual(n as? NSNull, NSNull())
} })
_ = returnSomething() _ = returnSomething()
.subscribeNext { (n: Int?) in .subscribe(onNext: { (n: Int?) in
XCTAssertEqual(n!, 3) XCTAssertEqual(n!, 3)
} })
} }
func testArrayMutation() { func testArrayMutation() {

View File

@ -198,9 +198,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = TestConnectableObservable(o: Observable.of(0, 1, 2), s: subject) let observable = TestConnectableObservable(o: Observable.of(0, 1, 2), s: subject)
let d = observable.subscribeNext { n in let d = observable.subscribe(onNext: { n in
nEvents += 1 nEvents += 1
} })
defer { defer {
d.dispose() d.dispose()
@ -217,9 +217,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = TestConnectableObservable(o: [Observable.of(0, 1, 2), Observable.error(testError)].concat(), s: subject) let observable = TestConnectableObservable(o: [Observable.of(0, 1, 2), Observable.error(testError)].concat(), s: subject)
let d = observable.subscribeError { n in let d = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
defer { defer {
d.dispose() d.dispose()
@ -236,9 +236,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = TestConnectableObservable(o: Observable.error(testError), s: subject) let observable = TestConnectableObservable(o: Observable.error(testError), s: subject)
let d = observable.subscribeError { n in let d = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
defer { defer {
d.dispose() d.dispose()
@ -255,9 +255,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = TestConnectableObservable(o: Observable.empty(), s: subject) let observable = TestConnectableObservable(o: Observable.empty(), s: subject)
let d = observable.subscribeCompleted { let d = observable.subscribe(onCompleted: {
nEvents += 1 nEvents += 1
} })
defer { defer {
d.dispose() d.dispose()
@ -1087,9 +1087,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = transform(Observable.of(0, 1, 2)) let observable = transform(Observable.of(0, 1, 2))
_ = observable.subscribeNext { n in _ = observable.subscribe(onNext: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 3) XCTAssertEqual(nEvents, 3)
} }
@ -1100,9 +1100,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = transform(Observable.empty()) let observable = transform(Observable.empty())
_ = observable.subscribeCompleted { n in _ = observable.subscribe(onCompleted: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1113,9 +1113,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = transform(Observable.error(testError)) let observable = transform(Observable.error(testError))
_ = observable.subscribeError { _ in _ = observable.subscribe(onError: { _ in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1126,9 +1126,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = transform([Observable.of(0, 1, 2), Observable.error(testError)].concat()) let observable = transform([Observable.of(0, 1, 2), Observable.error(testError)].concat())
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1397,9 +1397,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = Observable.of(0, 1, 2).shareReplayLatestWhileConnected() let observable = Observable.of(0, 1, 2).shareReplayLatestWhileConnected()
_ = observable.subscribeNext { n in _ = observable.subscribe(onNext: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 3) XCTAssertEqual(nEvents, 3)
} }
@ -1408,9 +1408,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = Observable<Int>.empty().shareReplayLatestWhileConnected() let observable = Observable<Int>.empty().shareReplayLatestWhileConnected()
_ = observable.subscribeCompleted { n in _ = observable.subscribe(onCompleted: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1419,9 +1419,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = Observable<Int>.error(testError).shareReplayLatestWhileConnected() let observable = Observable<Int>.error(testError).shareReplayLatestWhileConnected()
_ = observable.subscribeError { _ in _ = observable.subscribe(onError: { _ in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1430,9 +1430,9 @@ extension ObservableBindingTest {
var nEvents = 0 var nEvents = 0
let observable = [Observable.of(0, 1, 2), Observable.error(testError)].concat().shareReplayLatestWhileConnected() let observable = [Observable.of(0, 1, 2), Observable.error(testError)].concat().shareReplayLatestWhileConnected()
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }

View File

@ -76,10 +76,10 @@ extension ObservableConcurrencyTest {
runDispatchQueueSchedulerTests { scheduler in runDispatchQueueSchedulerTests { scheduler in
let observable = Observable.just(0) let observable = Observable.just(0)
.observeOn(scheduler) .observeOn(scheduler)
return observable .subscribeNext { n in return observable.subscribe(onNext: { n in
didExecute = true didExecute = true
XCTAssert(Thread.current !== unitTestsThread) XCTAssert(Thread.current !== unitTestsThread)
} })
} }
@ -128,9 +128,9 @@ extension ObservableConcurrencyTest {
runDispatchQueueSchedulerTests { scheduler in runDispatchQueueSchedulerTests { scheduler in
let observable: Observable<Int> = Observable.error(testError).observeOn(scheduler) let observable: Observable<Int> = Observable.error(testError).observeOn(scheduler)
return observable .subscribeError { n in return observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
} }
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
@ -142,9 +142,9 @@ extension ObservableConcurrencyTest {
runDispatchQueueSchedulerTests { scheduler in runDispatchQueueSchedulerTests { scheduler in
let observable: Observable<Int> = Observable.empty().observeOn(scheduler) let observable: Observable<Int> = Observable.empty().observeOn(scheduler)
return observable.subscribeCompleted { return observable.subscribe(onCompleted: {
nEvents += 1 nEvents += 1
} })
} }
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
@ -155,9 +155,9 @@ extension ObservableConcurrencyTest {
let xs: Observable<Int> = Observable.never() let xs: Observable<Int> = Observable.never()
return xs return xs
.observeOn(scheduler) .observeOn(scheduler)
.subscribeNext { n in .subscribe(onNext: { n in
XCTAssert(false) XCTAssert(false)
} })
} }
} }
@ -382,9 +382,9 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas
let xs: Observable<Int> = Observable.never() let xs: Observable<Int> = Observable.never()
let subscription = xs let subscription = xs
.observeOn(scheduler) .observeOn(scheduler)
.subscribeNext { n in .subscribe(onNext: { n in
XCTAssert(false) XCTAssert(false)
} })
sleep(0.1) sleep(0.1)

View File

@ -26,7 +26,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1) { (a0: Int, a1: Int) -> Int in a0 + a1 } let _ = Observable.zip(v0, v1) { (a0: Int, a1: Int) -> Int in a0 + a1 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 3) XCTAssertEqual(result, 3)
} }
@ -179,7 +179,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2) { (a0: Int, a1: Int, a2: Int) -> Int in a0 + a1 + a2 } let _ = Observable.zip(v0, v1, v2) { (a0: Int, a1: Int, a2: Int) -> Int in a0 + a1 + a2 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 6) XCTAssertEqual(result, 6)
} }
@ -360,7 +360,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2, v3) { (a0: Int, a1: Int, a2: Int, a3: Int) -> Int in a0 + a1 + a2 + a3 } let _ = Observable.zip(v0, v1, v2, v3) { (a0: Int, a1: Int, a2: Int, a3: Int) -> Int in a0 + a1 + a2 + a3 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 10) XCTAssertEqual(result, 10)
} }
@ -570,7 +570,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2, v3, v4) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int) -> Int in a0 + a1 + a2 + a3 + a4 } let _ = Observable.zip(v0, v1, v2, v3, v4) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int) -> Int in a0 + a1 + a2 + a3 + a4 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 15) XCTAssertEqual(result, 15)
} }
@ -810,7 +810,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2, v3, v4, v5) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 } let _ = Observable.zip(v0, v1, v2, v3, v4, v5) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 21) XCTAssertEqual(result, 21)
} }
@ -1081,7 +1081,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2, v3, v4, v5, v6) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 + a6 } let _ = Observable.zip(v0, v1, v2, v3, v4, v5, v6) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 + a6 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 28) XCTAssertEqual(result, 28)
} }
@ -1384,7 +1384,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(v0, v1, v2, v3, v4, v5, v6, v7) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int, a7: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 } let _ = Observable.zip(v0, v1, v2, v3, v4, v5, v6, v7) { (a0: Int, a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int, a7: Int) -> Int in a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, 36) XCTAssertEqual(result, 36)
} }

View File

@ -24,7 +24,7 @@ extension ObservableMultipleTest {
var result: Int! = nil var result: Int! = nil
let _ = Observable.zip(<%= (Array(0..<i).map { "v\($0)" }).joined(separator: ", ") %>) { (<%= (Array(0..<i).map { "a\($0): Int" }).joined(separator: ", ") %>) -> Int in <%= (Array(0..<i).map { "a\($0)" }).joined(separator: " + ") %> } let _ = Observable.zip(<%= (Array(0..<i).map { "v\($0)" }).joined(separator: ", ") %>) { (<%= (Array(0..<i).map { "a\($0): Int" }).joined(separator: ", ") %>) -> Int in <%= (Array(0..<i).map { "a\($0)" }).joined(separator: " + ") %> }
.subscribeNext { (x: Int) -> Void in result = x } .subscribe(onNext: { (x: Int) -> Void in result = x })
XCTAssertEqual(result, <%= (i + 1) * i / 2 %>) XCTAssertEqual(result, <%= (i + 1) * i / 2 %>)
} }

View File

@ -939,9 +939,9 @@ func generateSequence<T>(_ startIndex: Int, _ generator: (Int) -> Observable<T>)
extension ObservableMultipleTest { extension ObservableMultipleTest {
func testConcat_DefaultScheduler() { func testConcat_DefaultScheduler() {
var sum = 0 var sum = 0
_ = [Observable.just(1), Observable.just(2), Observable.just(3)].concat().subscribeNext { (e) -> Void in _ = [Observable.just(1), Observable.just(2), Observable.just(3)].concat().subscribe(onNext: { (e) -> Void in
sum += e sum += e
} })
XCTAssertEqual(sum, 6) XCTAssertEqual(sum, 6)
} }
@ -1562,9 +1562,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
).merge() ).merge()
_ = observable.subscribeNext { n in _ = observable.subscribe(onNext: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 9) XCTAssertEqual(nEvents, 9)
} }
@ -1578,9 +1578,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
).merge() ).merge()
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1592,9 +1592,9 @@ extension ObservableMultipleTest {
Observable.error(testError) Observable.error(testError)
).merge() ).merge()
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1603,9 +1603,9 @@ extension ObservableMultipleTest {
var nEvents = 0 var nEvents = 0
let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge() let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge()
_ = observable.subscribeCompleted { _ = observable.subscribe(onCompleted: {
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1614,9 +1614,9 @@ extension ObservableMultipleTest {
var nEvents = 0 var nEvents = 0
let observable: Observable<Int> = Observable.just(Observable.empty()).merge() let observable: Observable<Int> = Observable.just(Observable.empty()).merge()
_ = observable.subscribeCompleted { n in _ = observable.subscribe(onCompleted: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1630,9 +1630,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
).merge(maxConcurrent: 1) ).merge(maxConcurrent: 1)
_ = observable.subscribeNext { n in _ = observable.subscribe(onNext: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 9) XCTAssertEqual(nEvents, 9)
} }
@ -1646,9 +1646,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
).merge(maxConcurrent: 1) ).merge(maxConcurrent: 1)
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1660,9 +1660,9 @@ extension ObservableMultipleTest {
Observable.error(testError) Observable.error(testError)
).merge(maxConcurrent: 1) ).merge(maxConcurrent: 1)
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1672,9 +1672,9 @@ extension ObservableMultipleTest {
let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge(maxConcurrent: 1) let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge(maxConcurrent: 1)
_ = observable.subscribeCompleted { _ = observable.subscribe(onCompleted: {
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -1684,9 +1684,9 @@ extension ObservableMultipleTest {
let observable: Observable<Int> = Observable.just(Observable.empty()).merge(maxConcurrent: 1) let observable: Observable<Int> = Observable.just(Observable.empty()).merge(maxConcurrent: 1)
_ = observable.subscribeCompleted { n in _ = observable.subscribe(onCompleted: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -2509,9 +2509,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
) { $0 + $1 } ) { $0 + $1 }
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -2524,9 +2524,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
) { $0 + $1 } ) { $0 + $1 }
_ = observable.subscribeError { n in _ = observable.subscribe(onError: { n in
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }
@ -2540,9 +2540,9 @@ extension ObservableMultipleTest {
Observable.of(0, 1, 2) Observable.of(0, 1, 2)
) { $0 + $1 } ) { $0 + $1 }
_ = observable.subscribeCompleted { _ = observable.subscribe(onCompleted: {
nEvents += 1 nEvents += 1
} })
XCTAssertEqual(nEvents, 1) XCTAssertEqual(nEvents, 1)
} }

View File

@ -1032,9 +1032,9 @@ extension ObservableStandardSequenceOperatorsTest {
.map { a in .map { a in
return a return a
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
} })
} }
func testMap1_DisposeOnCompleted() { func testMap1_DisposeOnCompleted() {
@ -1042,9 +1042,9 @@ extension ObservableStandardSequenceOperatorsTest {
.mapWithIndex { (a, i) in .mapWithIndex { (a, i) in
return a return a
} }
.subscribeNext { _ in .subscribe(onNext: { _ in
} })
} }
} }
@ -3639,9 +3639,9 @@ extension ObservableStandardSequenceOperatorsTest {
func testTake_DecrementCountsFirst() { func testTake_DecrementCountsFirst() {
let k = BehaviorSubject(value: false) let k = BehaviorSubject(value: false)
_ = k.take(1).subscribeNext { n in _ = k.take(1).subscribe(onNext: { n in
k.on(.next(!n)) k.on(.next(!n))
} })
} }
} }
@ -3888,10 +3888,10 @@ extension ObservableStandardSequenceOperatorsTest {
let k = BehaviorSubject(value: false) let k = BehaviorSubject(value: false)
var elements = [Bool]() var elements = [Bool]()
_ = k.takeLast(1).subscribeNext { n in _ = k.takeLast(1).subscribe(onNext: { n in
elements.append(n) elements.append(n)
k.on(.next(!n)) k.on(.next(!n))
} })
k.on(.completed) k.on(.completed)
@ -5071,9 +5071,9 @@ extension ObservableStandardSequenceOperatorsTest {
func testSingle_DecrementCountsFirst() { func testSingle_DecrementCountsFirst() {
let k = BehaviorSubject(value: false) let k = BehaviorSubject(value: false)
_ = k.single { _ in true }.subscribeNext { n in _ = k.single { _ in true }.subscribe(onNext: { n in
k.on(.next(!n)) k.on(.next(!n))
} })
} }
func testSinglePredicate_Empty() { func testSinglePredicate_Empty() {
@ -5211,9 +5211,9 @@ extension ObservableStandardSequenceOperatorsTest {
func testSinglePredicate_DecrementCountsFirst() { func testSinglePredicate_DecrementCountsFirst() {
let k = BehaviorSubject(value: false) let k = BehaviorSubject(value: false)
_ = k.single { _ in true }.subscribeNext { n in _ = k.single { _ in true }.subscribe(onNext: { n in
k.on(.next(!n)) k.on(.next(!n))
} })
} }

View File

@ -23,9 +23,9 @@ extension ObserverTests {
var elements = [Int]() var elements = [Int]()
_ = a.subscribeNext { n in _ = a.subscribe(onNext: { n in
elements.append(n) elements.append(n)
} })
XCTAssertEqual(elements, []) XCTAssertEqual(elements, [])
@ -72,9 +72,9 @@ extension ObserverTests {
var elements = [Int]() var elements = [Int]()
_ = a.subscribeNext { n in _ = a.subscribe(onNext: { n in
elements.append(n) elements.append(n)
} })
XCTAssertEqual(elements, []) XCTAssertEqual(elements, [])

View File

@ -42,7 +42,7 @@ extension SubjectConcurrencyTest {
var allDone = false var allDone = false
var state = 0 var state = 0
_ = observable.subscribeNext { [unowned o] n in _ = observable.subscribe(onNext: { [unowned o] n in
if n < 0 { if n < 0 {
return return
} }
@ -70,7 +70,7 @@ extension SubjectConcurrencyTest {
XCTAssertTrue(isMainThread()) XCTAssertTrue(isMainThread())
allDone = true allDone = true
} }
} })
_observer.on(.next(0)) _observer.on(.next(0))
@ -94,7 +94,7 @@ extension SubjectConcurrencyTest {
var ranAll = false var ranAll = false
_ = observable.subscribeNext { [unowned o] n in _ = observable.subscribe(onNext: { [unowned o] n in
if n < 0 { if n < 0 {
return return
} }
@ -110,7 +110,7 @@ extension SubjectConcurrencyTest {
o.value.on(.completed) o.value.on(.completed)
ranAll = true ranAll = true
} }
} })
o.value.on(.next(0)) o.value.on(.next(0))
XCTAssertTrue(ranAll) XCTAssertTrue(ranAll)
@ -125,7 +125,7 @@ extension SubjectConcurrencyTest {
var ranAll = false var ranAll = false
_ = observable.subscribeNext { [unowned o] n in _ = observable.subscribe(onNext: { [unowned o] n in
if n < 0 { if n < 0 {
return return
} }
@ -141,7 +141,7 @@ extension SubjectConcurrencyTest {
o.value.on(.error(testError)) o.value.on(.error(testError))
ranAll = true ranAll = true
} }
} })
o.value.on(.next(0)) o.value.on(.next(0))
XCTAssertTrue(ranAll) XCTAssertTrue(ranAll)

View File

@ -20,9 +20,9 @@ class VariableTest : RxTest {
var latestValue: Int? var latestValue: Int?
let subscription = c let subscription = c
.subscribeNext { next in .subscribe(onNext: { next in
latestValue = next latestValue = next
} })
XCTAssertEqual(latestValue!, 3) XCTAssertEqual(latestValue!, 3)
@ -82,10 +82,10 @@ class VariableTest : RxTest {
var latestValueOfC : Int? = nil var latestValueOfC : Int? = nil
// let _ = doesn't retain. // let _ = doesn't retain.
let d/*: Disposable*/ = c let d/*: Disposable*/ = c
.subscribeNext { c in .subscribe(onNext: { c in
//print("Next value of c = \(c)") //print("Next value of c = \(c)")
latestValueOfC = c latestValueOfC = c
} })
defer { defer {
d.dispose() d.dispose()