Modernizes APIs.
This commit is contained in:
parent
3637153169
commit
aef4e69339
|
|
@ -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"
|
||||
|
||||
// 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".
|
||||
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`
|
||||
a.value = 4 // prints: 6 is positive
|
||||
|
|
@ -152,12 +152,12 @@ self.usernameOutlet.rx_text
|
|||
// That's what `switchLatest` does.
|
||||
.switchLatest()
|
||||
// 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.
|
||||
.subscribeNext { valid in
|
||||
.subscribe(onNext: { valid in
|
||||
errorLabel.textColor = validationColor(valid)
|
||||
errorLabel.text = valid.message
|
||||
}
|
||||
})
|
||||
// This will produce a `Disposable` object that can unbind everything and cancel
|
||||
// pending async operations.
|
||||
// Instead of doing it manually, which is tedious,
|
||||
|
|
|
|||
|
|
@ -276,9 +276,9 @@ let searchForMe = searchWikipedia("me")
|
|||
|
||||
let cancel = searchForMe
|
||||
// sequence generation starts now, URL requests are fired
|
||||
.subscribeNext { results in
|
||||
.subscribe(onNext: { results in
|
||||
print(results)
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
|
|
@ -298,9 +298,9 @@ func myJust<E>(element: E) -> Observable<E> {
|
|||
}
|
||||
|
||||
myJust(0)
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
this will print:
|
||||
|
|
@ -339,17 +339,17 @@ print("Started ----")
|
|||
|
||||
// first time
|
||||
stringCounter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
|
||||
print("----")
|
||||
|
||||
// again
|
||||
stringCounter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
|
||||
print("Ended ----")
|
||||
```
|
||||
|
|
@ -406,9 +406,9 @@ let counter = myInterval(0.1)
|
|||
print("Started ----")
|
||||
|
||||
let subscription = counter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
|
||||
NSThread.sleepForTimeInterval(0.5)
|
||||
|
||||
|
|
@ -438,13 +438,13 @@ let counter = myInterval(0.1)
|
|||
print("Started ----")
|
||||
|
||||
let subscription1 = counter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print("First \(n)")
|
||||
}
|
||||
})
|
||||
let subscription2 = counter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print("Second \(n)")
|
||||
}
|
||||
})
|
||||
|
||||
NSThread.sleepForTimeInterval(0.5)
|
||||
|
||||
|
|
@ -503,13 +503,13 @@ let counter = myInterval(0.1)
|
|||
print("Started ----")
|
||||
|
||||
let subscription1 = counter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print("First \(n)")
|
||||
}
|
||||
})
|
||||
let subscription2 = counter
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print("Second \(n)")
|
||||
}
|
||||
})
|
||||
|
||||
NSThread.sleepForTimeInterval(0.5)
|
||||
|
||||
|
|
@ -637,9 +637,9 @@ let subscription = myInterval(0.1)
|
|||
.myMap { e in
|
||||
return "This is simply \(e)"
|
||||
}
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
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()
|
||||
|
||||
magicBeings
|
||||
.subscribeNext { being in // exit the Rx monad
|
||||
.subscribe(onNext: { being in // exit the Rx monad
|
||||
self.doSomeStateMagic(being)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
//
|
||||
|
|
@ -698,9 +698,9 @@ Every time you do this, somebody will probably write this code somewhere
|
|||
|
||||
```swift
|
||||
kittens
|
||||
.subscribeNext { kitten in
|
||||
.subscribe(onNext: { kitten in
|
||||
// so something with kitten
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
```
|
||||
|
||||
|
|
@ -783,9 +783,9 @@ let subscription = myInterval(0.1)
|
|||
.map { e in
|
||||
return "This is simply \(e)"
|
||||
}
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
print(n)
|
||||
}
|
||||
})
|
||||
|
||||
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
|
||||
*/
|
||||
_ = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
|
||||
.subscribeNext { _ in
|
||||
print("Resource count \(RxSwift.resourceCount)")
|
||||
}
|
||||
.subscribe(onNext: { _ in
|
||||
print("Resource count \(RxSwift.resourceCount)")
|
||||
})
|
||||
```
|
||||
|
||||
Most efficient way to test for memory leaks is:
|
||||
|
|
@ -952,9 +952,9 @@ Example how to observe frame of `UIView`.
|
|||
```swift
|
||||
view
|
||||
.rx_observe(CGRect.self, "frame")
|
||||
.subscribeNext { frame in
|
||||
.subscribe(onNext: { frame in
|
||||
...
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
or
|
||||
|
|
@ -962,9 +962,9 @@ or
|
|||
```swift
|
||||
view
|
||||
.rx_observeWeakly(CGRect.self, "frame")
|
||||
.subscribeNext { frame in
|
||||
.subscribe(onNext: { frame in
|
||||
...
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### `rx_observe`
|
||||
|
|
@ -1077,9 +1077,9 @@ let responseJSON = NSURLSession.sharedSession().rx_JSON(request)
|
|||
|
||||
let cancelRequest = responseJSON
|
||||
// this will fire the request
|
||||
.subscribeNext { json in
|
||||
.subscribe(onNext: { json in
|
||||
print(json)
|
||||
}
|
||||
})
|
||||
|
||||
NSThread.sleepForTimeInterval(3)
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ sequence1
|
|||
|
||||
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.
|
||||
|
||||
|
|
|
|||
|
|
@ -114,9 +114,9 @@ let disposeBag = DisposeBag()
|
|||
xs
|
||||
.filter { ... }
|
||||
.map { ... }
|
||||
.subscribeNext { nextElement in // <-- note the `subscribe*` method
|
||||
.subscribe(onNext: { nextElement in // <-- note the `subscribe*` method
|
||||
// use the element
|
||||
print(nextElement)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ example("startWith") {
|
|||
.startWith("1️⃣")
|
||||
.startWith("2️⃣")
|
||||
.startWith("3️⃣", "🅰️", "🅱️")
|
||||
.subscribeNext { print($0) }
|
||||
..subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -40,7 +40,7 @@ example("merge") {
|
|||
|
||||
Observable.of(subject1, subject2)
|
||||
.merge()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
subject1.onNext("🅰️")
|
||||
|
|
@ -70,7 +70,7 @@ example("zip") {
|
|||
Observable.zip(stringSubject, intSubject) { stringElement, intElement in
|
||||
"\(stringElement) \(intElement)"
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
stringSubject.onNext("🅰️")
|
||||
|
|
@ -98,7 +98,7 @@ example("combineLatest") {
|
|||
Observable.combineLatest(stringSubject, intSubject) { stringElement, intElement in
|
||||
"\(stringElement) \(intElement)"
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
stringSubject.onNext("🅰️")
|
||||
|
|
@ -121,7 +121,7 @@ example("Array.combineLatest") {
|
|||
[stringObservable, fruitObservable, animalObservable].combineLatest {
|
||||
"\($0[0]) \($0[1]) \($0[2])"
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -141,7 +141,7 @@ example("switchLatest") {
|
|||
|
||||
variable.asObservable()
|
||||
.switchLatest()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
subject1.onNext("🏈")
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@ func sampleWithoutConnectableOperators() {
|
|||
let interval = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
|
||||
|
||||
_ = interval
|
||||
.subscribeNext { print("Subscription: 1, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription: 1, Event: \($0)") })
|
||||
|
||||
delay(5) {
|
||||
_ = interval
|
||||
.subscribeNext { print("Subscription: 2, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription: 2, Event: \($0)") })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -47,18 +47,18 @@ func sampleWithPublish() {
|
|||
.publish()
|
||||
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 1:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription 1:, Event: \($0)") })
|
||||
|
||||
delay(2) { _ = intSequence.connect() }
|
||||
|
||||
delay(4) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 2:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription 2:, Event: \($0)") })
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 3:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription 3:, Event: \($0)") })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -79,18 +79,18 @@ func sampleWithReplayBuffer() {
|
|||
.replay(5)
|
||||
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 1:, Event: \($0)") }
|
||||
..subscribe(onNext: { print("Subscription 1:, Event: \($0)") })
|
||||
|
||||
delay(2) { _ = intSequence.connect() }
|
||||
|
||||
delay(4) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 2:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription 2:, Event: \($0)") })
|
||||
}
|
||||
|
||||
delay(8) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("Subscription 3:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("Subscription 3:, Event: \($0)") })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -107,24 +107,24 @@ func sampleWithMulticast() {
|
|||
let subject = PublishSubject<Int>()
|
||||
|
||||
_ = subject
|
||||
.subscribeNext { print("Subject: \($0)") }
|
||||
.subscribe(onNext: { print("Subject: \($0)") })
|
||||
|
||||
let intSequence = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
|
||||
.multicast(subject)
|
||||
|
||||
_ = intSequence
|
||||
.subscribeNext { print("\tSubscription 1:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("\tSubscription 1:, Event: \($0)") })
|
||||
|
||||
delay(2) { _ = intSequence.connect() }
|
||||
|
||||
delay(4) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("\tSubscription 2:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("\tSubscription 2:, Event: \($0)") })
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
_ = intSequence
|
||||
.subscribeNext { print("\tSubscription 3:, Event: \($0)") }
|
||||
.subscribe(onNext: { print("\tSubscription 3:, Event: \($0)") })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,13 +63,13 @@ example("of") {
|
|||
let disposeBag = DisposeBag()
|
||||
|
||||
Observable.of("🐶", "🐱", "🐭", "🐹")
|
||||
.subscribeNext { element in
|
||||
.subscribe(onNext: { element in
|
||||
print(element)
|
||||
}
|
||||
})
|
||||
.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(
|
||||
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`.
|
||||
*/
|
||||
example("toObservable") {
|
||||
example("from") {
|
||||
let disposeBag = DisposeBag()
|
||||
|
||||
["🐶", "🐱", "🐭", "🐹"].toObservable()
|
||||
.subscribeNext { print($0) }
|
||||
Observable.from(["🐶", "🐱", "🐭", "🐹"])
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -132,7 +132,7 @@ example("repeatElement") {
|
|||
|
||||
Observable.repeatElement("🔴")
|
||||
.take(3)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -149,7 +149,7 @@ example("generate") {
|
|||
condition: { $0 < 3 },
|
||||
iterate: { $0 + 1 }
|
||||
)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -175,11 +175,11 @@ example("deferred") {
|
|||
}
|
||||
|
||||
deferredSequence
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
deferredSequence
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -204,7 +204,7 @@ example("doOn") {
|
|||
|
||||
Observable.of("🍎", "🍐", "🍊", "🍋")
|
||||
.doOn { print("Intercepted:", $0) }
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.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.
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ example("debug") {
|
|||
sequenceThatErrors
|
||||
.retry(3)
|
||||
.debug()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -59,11 +59,11 @@ example("RxSwift.resourceCount") {
|
|||
|
||||
let variable = Variable("🍎")
|
||||
|
||||
let subscription1 = variable.asObservable().subscribeNext { print($0) }
|
||||
let subscription1 = variable.asObservable().subscribe(onNext: { print($0) })
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let subscription2 = variable.asObservable().subscribeNext { print($0) }
|
||||
let subscription2 = variable.asObservable().subscribe(onNext: { print($0) })
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
|
|
@ -80,4 +80,4 @@ print(RxSwift.resourceCount)
|
|||
#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.
|
||||
|
||||
//: [Table of Contents](Table_of_Contents)
|
||||
//: [Table of Contents](Tabl
|
||||
|
|
@ -90,7 +90,7 @@ example("retry") {
|
|||
|
||||
sequenceThatErrors
|
||||
.retry()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -124,8 +124,8 @@ example("retry maxAttemptCount") {
|
|||
|
||||
sequenceThatErrors
|
||||
.retry(3)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
//: [Next](@next) - [Table of Contents](Table_of_Contents)
|
||||
//: [Next](@next) - [Table of Contents](Table_of_
|
||||
|
|
@ -25,7 +25,7 @@ example("filter") {
|
|||
.filter {
|
||||
$0 == "🐱"
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -39,7 +39,7 @@ example("distinctUntilChanged") {
|
|||
|
||||
Observable.of("🐱", "🐷", "🐱", "🐱", "🐱", "🐵", "🐱")
|
||||
.distinctUntilChanged()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -53,7 +53,7 @@ example("elementAt") {
|
|||
|
||||
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
|
||||
.elementAt(3)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -66,7 +66,7 @@ example("single") {
|
|||
|
||||
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
|
||||
.single()
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ example("take") {
|
|||
|
||||
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
|
||||
.take(3)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -113,7 +113,7 @@ example("takeLast") {
|
|||
|
||||
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
|
||||
.takeLast(3)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -127,7 +127,7 @@ example("takeWhile") {
|
|||
|
||||
Observable.of(1, 2, 3, 4, 5, 6)
|
||||
.takeWhile { $0 < 4 }
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -168,7 +168,7 @@ example("skip") {
|
|||
|
||||
Observable.of("🐱", "🐰", "🐶", "🐸", "🐷", "🐵")
|
||||
.skip(2)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -182,7 +182,7 @@ example("skipWhile") {
|
|||
|
||||
Observable.of(1, 2, 3, 4, 5, 6)
|
||||
.skipWhile { $0 < 4 }
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -197,7 +197,7 @@ example("skipWhileWithIndex") {
|
|||
.skipWhileWithIndex { element, index in
|
||||
index < 3
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -214,7 +214,7 @@ example("skipUntil") {
|
|||
|
||||
sourceSequence
|
||||
.skipUntil(referenceSequence)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
sourceSequence.onNext("🐱")
|
||||
|
|
@ -228,4 +228,4 @@ example("skipUntil") {
|
|||
sourceSequence.onNext("🐵")
|
||||
}
|
||||
|
||||
//: [Next](@next) - [Table of Contents](Table_of_Contents)
|
||||
//:
|
||||
|
|
@ -34,7 +34,7 @@ example("reduce") {
|
|||
|
||||
Observable.of(10, 100, 1000)
|
||||
.reduce(1, accumulator: +)
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -69,4 +69,4 @@ example("concat") {
|
|||
subject2.onNext("🐭")
|
||||
}
|
||||
|
||||
//: [Next](@next) - [Table of Contents](Table_of_Contents)
|
||||
//: [Next](@next) - [Table of Contents](Table_of_Conte
|
||||
|
|
@ -19,7 +19,7 @@ example("map") {
|
|||
let disposeBag = DisposeBag()
|
||||
Observable.of(1, 2, 3)
|
||||
.map { $0 * $0 }
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
|
|
@ -42,7 +42,7 @@ example("flatMap and flatMapLatest") {
|
|||
|
||||
player.asObservable()
|
||||
.flatMap { $0.score.asObservable() } // Change flatMap to flatMapLatest and observe change in printed output
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
👦🏻.score.value = 85
|
||||
|
|
@ -71,8 +71,8 @@ example("scan") {
|
|||
.scan(1) { aggregateValue, newValue in
|
||||
aggregateValue + newValue
|
||||
}
|
||||
.subscribeNext { print($0) }
|
||||
.subscribe(onNext: { print($0) })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
//: [Next](@next) - [Table of Contents](Table_of_Contents)
|
||||
//: [Next](@next) - [Table of Contents](Tabl
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?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>
|
||||
<page name='Table_of_Contents'/>
|
||||
<page name='Introduction'/>
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@
|
|||
C8093CF61B8A72BE0088E94D /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; };
|
||||
C8093CF71B8A72BE0088E94D /* 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 */; };
|
||||
C8093CFC1B8A72BE0088E94D /* 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 /* ObservableType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */; };
|
||||
C8093CFD1B8A72BE0088E94D /* 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 */; };
|
||||
|
|
@ -836,7 +836,7 @@
|
|||
C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC01B8A72BE0088E94D /* ReplaySubject.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 */; };
|
||||
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 */; };
|
||||
C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6E1B8A72BE0088E94D /* Catch.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 */; };
|
||||
D2EBEAE11BB9B697003A27DC /* ImmediateSchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.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 */; };
|
||||
D2EBEAE51BB9B697003A27DC /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA01B8A72BE0088E94D /* AnyObserver.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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
|
@ -1932,7 +1932,7 @@
|
|||
C8093C641B8A72BE0088E94D /* Event.swift */,
|
||||
C8093C651B8A72BE0088E94D /* ImmediateSchedulerType.swift */,
|
||||
C8093C681B8A72BE0088E94D /* Observable.swift */,
|
||||
C8093C671B8A72BE0088E94D /* Observable+Extensions.swift */,
|
||||
C8093C671B8A72BE0088E94D /* ObservableType+Extensions.swift */,
|
||||
C849BE2A1BAB5D070019AD27 /* ObservableConvertibleType.swift */,
|
||||
C8093C9E1B8A72BE0088E94D /* ObservableType.swift */,
|
||||
C8093CA01B8A72BE0088E94D /* AnyObserver.swift */,
|
||||
|
|
@ -3843,7 +3843,7 @@
|
|||
C8093DA41B8A72BE0088E94D /* ReplaySubject.swift in Sources */,
|
||||
C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.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 */,
|
||||
C8B145011BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
|
||||
C8093D061B8A72BE0088E94D /* Catch.swift in Sources */,
|
||||
|
|
@ -4065,7 +4065,7 @@
|
|||
C8093DA31B8A72BE0088E94D /* ReplaySubject.swift in Sources */,
|
||||
C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.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 */,
|
||||
C8B145001BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
|
||||
C8093D051B8A72BE0088E94D /* Catch.swift in Sources */,
|
||||
|
|
@ -4213,7 +4213,7 @@
|
|||
C8F0BFA61BBBFB8B001B112F /* ReplaySubject.swift in Sources */,
|
||||
C8F0BFA71BBBFB8B001B112F /* Zip+CollectionType.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 */,
|
||||
C8B145031BD2D80100267DCE /* ImmediateScheduler.swift in Sources */,
|
||||
C8F0BFAC1BBBFB8B001B112F /* Catch.swift in Sources */,
|
||||
|
|
@ -4623,7 +4623,7 @@
|
|||
D2EBEAE91BB9B697003A27DC /* RxMutableBox.swift in Sources */,
|
||||
D2EBEAFC1BB9B6BA003A27DC /* Amb.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 */,
|
||||
D2EBEB121BB9B6C1003A27DC /* Merge.swift in Sources */,
|
||||
D2EBEAEF1BB9B6A4003A27DC /* Queue.swift in Sources */,
|
||||
|
|
|
|||
|
|
@ -105,9 +105,10 @@ extension DriverConvertibleType {
|
|||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||
*/
|
||||
// @warn_unused_result(message:"http://git.io/rxs.ud")
|
||||
@available(*, deprecated, renamed: "drive(onNext:)")
|
||||
public func driveNext(_ onNext: (E) -> Void) -> Disposable {
|
||||
MainScheduler.ensureExecutingOnScheduler(errorMessage: driverErrorMessage)
|
||||
return self.asObservable().subscribeNext(onNext)
|
||||
return self.asObservable().subscribe(onNext: onNext)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ class APIWrappersViewController: ViewController {
|
|||
// MARK: UIBarButtonItem
|
||||
|
||||
bbitem.rx_tap
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UIBarButtonItem Tapped")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
// MARK: UISegmentedControl
|
||||
|
|
@ -75,9 +75,9 @@ class APIWrappersViewController: ViewController {
|
|||
_ = segmentedControl.rx_value <-> segmentedValue
|
||||
|
||||
segmentedValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UISegmentedControl value \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
|
|
@ -88,9 +88,9 @@ class APIWrappersViewController: ViewController {
|
|||
_ = switcher.rx_value <-> switchValue
|
||||
|
||||
switchValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UISwitch value \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
// MARK: UIActivityIndicatorView
|
||||
|
|
@ -103,9 +103,9 @@ class APIWrappersViewController: ViewController {
|
|||
// MARK: UIButton
|
||||
|
||||
button.rx_tap
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UIButton Tapped")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
|
|
@ -116,9 +116,9 @@ class APIWrappersViewController: ViewController {
|
|||
_ = slider.rx_value <-> sliderValue
|
||||
|
||||
sliderValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UISlider value \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
|
|
@ -130,9 +130,9 @@ class APIWrappersViewController: ViewController {
|
|||
|
||||
|
||||
dateValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UIDatePicker date \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
|
|
@ -143,18 +143,18 @@ class APIWrappersViewController: ViewController {
|
|||
_ = textField <-> textValue
|
||||
|
||||
textValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UITextField text \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
// MARK: UIGestureRecognizer
|
||||
|
||||
mypan.rx_event
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UIGestureRecognizer event \(x.state)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
|
|
@ -165,9 +165,9 @@ class APIWrappersViewController: ViewController {
|
|||
_ = textView <-> textViewValue
|
||||
|
||||
textViewValue.asObservable()
|
||||
.subscribeNext { [weak self] x in
|
||||
.subscribe(onNext: { [weak self] x in
|
||||
self?.debug("UITextView text \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
// MARK: CLLocationManager
|
||||
|
|
@ -177,20 +177,20 @@ class APIWrappersViewController: ViewController {
|
|||
#endif
|
||||
|
||||
manager.rx_didUpdateLocations
|
||||
.subscribeNext { x in
|
||||
.subscribe(onNext: { x in
|
||||
print("rx_didUpdateLocations \(x)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
_ = manager.rx_didFailWithError
|
||||
.subscribeNext { x in
|
||||
.subscribe(onNext: { x in
|
||||
print("rx_didFailWithError \(x)")
|
||||
}
|
||||
})
|
||||
|
||||
manager.rx_didChangeAuthorizationStatus
|
||||
.subscribeNext { status in
|
||||
.subscribe(onNext: { status in
|
||||
print("Authorization status \(status)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
manager.startUpdatingLocation()
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class CalculatorViewController: ViewController {
|
|||
return a.tranformState(x)
|
||||
}
|
||||
.debug("debugging")
|
||||
.subscribeNext { [weak self] calState in
|
||||
.subscribe(onNext: { [weak self] calState in
|
||||
self?.resultLabel.text = calState.inScreen
|
||||
switch calState.action {
|
||||
case .operation(let operation):
|
||||
|
|
@ -92,7 +92,7 @@ class CalculatorViewController: ViewController {
|
|||
default:
|
||||
self?.lastSignLabel.text = ""
|
||||
}
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,9 +79,9 @@ class GitHubSearchRepositoriesViewController: ViewController, UITableViewDelegat
|
|||
|
||||
searchResult
|
||||
.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")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
// dismiss keyboard on scroll
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ class GitHubSignupViewController2 : ViewController {
|
|||
|
||||
// bind results to {
|
||||
viewModel.signupEnabled
|
||||
.driveNext { [weak self] valid in
|
||||
.drive(onNext: { [weak self] valid in
|
||||
self?.signupOutlet.isEnabled = valid
|
||||
self?.signupOutlet.alpha = valid ? 1.0 : 0.5
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
viewModel.validatedUsername
|
||||
|
|
@ -68,17 +68,17 @@ class GitHubSignupViewController2 : ViewController {
|
|||
.addDisposableTo(disposeBag)
|
||||
|
||||
viewModel.signedIn
|
||||
.driveNext { signedIn in
|
||||
.drive(onNext: { signedIn in
|
||||
print("User signed in \(signedIn)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
//}
|
||||
|
||||
let tapBackground = UITapGestureRecognizer()
|
||||
tapBackground.rx_event
|
||||
.subscribeNext { [weak self] _ in
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.view.endEditing(true)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
view.addGestureRecognizer(tapBackground)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ class GitHubSignupViewController1 : ViewController {
|
|||
|
||||
// bind results to {
|
||||
viewModel.signupEnabled
|
||||
.subscribeNext { [weak self] valid in
|
||||
.subscribe(onNext: { [weak self] valid in
|
||||
self?.signupOutlet.isEnabled = valid
|
||||
self?.signupOutlet.alpha = valid ? 1.0 : 0.5
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
viewModel.validatedUsername
|
||||
|
|
@ -68,17 +68,17 @@ class GitHubSignupViewController1 : ViewController {
|
|||
.addDisposableTo(disposeBag)
|
||||
|
||||
viewModel.signedIn
|
||||
.subscribeNext { signedIn in
|
||||
.subscribe(onNext: { signedIn in
|
||||
print("User signed in \(signedIn)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
//}
|
||||
|
||||
let tapBackground = UITapGestureRecognizer()
|
||||
tapBackground.rx_event
|
||||
.subscribeNext { [weak self] _ in
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.view.endEditing(true)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
view.addGestureRecognizer(tapBackground)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ extension UIImagePickerController {
|
|||
let imagePicker = UIImagePickerController()
|
||||
let dismissDisposable = imagePicker
|
||||
.rx_didCancel
|
||||
.subscribeNext({ [weak imagePicker] in
|
||||
.subscribe(onNext: { [weak imagePicker] in
|
||||
guard let imagePicker = imagePicker else {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,35 +46,35 @@ class IntroductionExampleViewController : ViewController {
|
|||
.map { (a, b) in
|
||||
return "\(a) + \(b) = \(a + b)"
|
||||
}
|
||||
.subscribeNext { result in
|
||||
.subscribe(onNext: { result in
|
||||
if speech.isSpeaking {
|
||||
speech.stopSpeaking()
|
||||
}
|
||||
|
||||
speech.startSpeaking(result)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
|
||||
slider.rx_value
|
||||
.subscribeNext { value in
|
||||
.subscribe(onNext: { value in
|
||||
self.sliderValue.stringValue = "\(Int(value))"
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
sliderValue.rx_text
|
||||
.subscribeNext { value in
|
||||
.subscribe(onNext: { value in
|
||||
let doubleValue = value.toDouble() ?? 0.0
|
||||
self.slider.doubleValue = doubleValue
|
||||
self.sliderValue.stringValue = "\(Int(doubleValue))"
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
disposeButton.rx_tap
|
||||
.subscribeNext { [weak self] _ in
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
print("Unbind everything")
|
||||
self?.disposeBag = DisposeBag()
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,16 +34,16 @@ class SimpleTableViewExampleViewController : ViewController {
|
|||
|
||||
tableView
|
||||
.rx_modelSelected(String.self)
|
||||
.subscribeNext { value in
|
||||
.subscribe(onNext: { value in
|
||||
DefaultWireframe.presentAlert("Tapped `\(value)`")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
tableView
|
||||
.rx_itemAccessoryButtonTapped
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
DefaultWireframe.presentAlert("Tapped Detail @ \(indexPath.section),\(indexPath.row)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ class SimpleTableViewExampleSectionedViewController
|
|||
.map { indexPath in
|
||||
return (indexPath, dataSource.itemAtIndexPath(indexPath))
|
||||
}
|
||||
.subscribeNext { indexPath, model in
|
||||
.subscribe(onNext: { indexPath, model in
|
||||
DefaultWireframe.presentAlert("Tapped `\(model)` @ \(indexPath)")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
tableView
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class SimpleValidationViewController : ViewController {
|
|||
.addDisposableTo(disposeBag)
|
||||
|
||||
doSomethingOutlet.rx_tap
|
||||
.subscribeNext { [weak self] in self?.showAlert() }
|
||||
.subscribe(onNext: { [weak self] in self?.showAlert() })
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -122,16 +122,16 @@ class PartialUpdatesViewController : ViewController {
|
|||
// touches
|
||||
|
||||
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.")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
Observable.of(partialUpdatesTableViewOutlet.rx_itemSelected, reloadTableViewOutlet.rx_itemSelected)
|
||||
.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])?")
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,9 +115,9 @@ class TableViewWithEditingCommandsViewController: ViewController, UITableViewDel
|
|||
let all = [viewModel.favoriteUsers, viewModel.users]
|
||||
return all[i.section][i.row]
|
||||
}
|
||||
.subscribeNext { [weak self] user in
|
||||
.subscribe(onNext: { [weak self] user in
|
||||
self?.showDetailsForUser(user)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
// customization using delegate
|
||||
|
|
|
|||
|
|
@ -93,11 +93,11 @@ class WikipediaSearchViewController: ViewController {
|
|||
.filter { _ -> Bool in
|
||||
return !searchController.isBeingPresented
|
||||
}
|
||||
.driveNext { _ in
|
||||
.drive(onNext: { _ in
|
||||
if searchBar.isFirstResponder {
|
||||
_ = searchBar.resignFirstResponder()
|
||||
}
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
@ -106,9 +106,9 @@ class WikipediaSearchViewController: ViewController {
|
|||
|
||||
resultsTableView.rx_modelSelected(SearchResultViewModel.self)
|
||||
.asDriver()
|
||||
.driveNext { searchResult in
|
||||
.drive(onNext: { searchResult in
|
||||
wireframe.open(url:searchResult.searchResult.URL)
|
||||
}
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ class ViewController: OSViewController {
|
|||
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
|
||||
*/
|
||||
_ = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
print("Resource count \(RxSwift.resourceCount)")
|
||||
}
|
||||
})
|
||||
|
||||
Most efficient way to test for memory leaks is:
|
||||
* navigate to your screen and use it
|
||||
|
|
|
|||
|
|
@ -23,11 +23,11 @@ public class RootViewController : UITableViewController {
|
|||
_ = DefaultWireframe.sharedInstance
|
||||
_ = MainScheduler.instance
|
||||
let geoService = GeolocationService.instance
|
||||
geoService.authorized.driveNext { _ in
|
||||
geoService.authorized.drive(onNext: { _ in
|
||||
|
||||
}.dispose()
|
||||
geoService.location.driveNext { _ in
|
||||
}).dispose()
|
||||
geoService.location.drive(onNext: { _ in
|
||||
|
||||
}.dispose()
|
||||
}).dispose()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// Observable+Extensions.swift
|
||||
// ObservableType+Extensions.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Krunoslav Zaher on 2/21/15.
|
||||
|
|
@ -24,6 +24,53 @@ extension ObservableType {
|
|||
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.
|
||||
|
||||
|
|
@ -64,6 +111,7 @@ extension ObservableType {
|
|||
disposable
|
||||
)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
Subscribes an element handler to an observable sequence.
|
||||
|
|
@ -72,6 +120,7 @@ extension ObservableType {
|
|||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||
*/
|
||||
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
||||
@available(*, deprecated, renamed: "subscribe(onNext:)")
|
||||
public func subscribeNext(_ onNext: (E) -> Void)
|
||||
-> Disposable {
|
||||
let observer = AnonymousObserver<E> { e in
|
||||
|
|
@ -89,6 +138,7 @@ extension ObservableType {
|
|||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||
*/
|
||||
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
||||
@available(*, deprecated, renamed: "subscribe(onError:)")
|
||||
public func subscribeError(_ onError: (Swift.Error) -> Void)
|
||||
-> Disposable {
|
||||
let observer = AnonymousObserver<E> { e in
|
||||
|
|
@ -106,6 +156,7 @@ extension ObservableType {
|
|||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||
*/
|
||||
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
||||
@available(*, deprecated, renamed: "subscribe(onCompleted:)")
|
||||
public func subscribeCompleted(_ onCompleted: () -> Void)
|
||||
-> Disposable {
|
||||
let observer = AnonymousObserver<E> { e in
|
||||
|
|
@ -49,9 +49,9 @@ compareTwoImplementations(benchmarkTime: true, benchmarkMemory: false, first: {
|
|||
/*.filter { _ in true }//){ x, _ in x }
|
||||
.map { $0 }
|
||||
.flatMap { Observable.just($0) }*/
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
for i in 0..<100 {
|
||||
|
|
|
|||
|
|
@ -76,9 +76,9 @@ class DelegateProxyTest : RxTest {
|
|||
var observedFeedRequest = false
|
||||
|
||||
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:)))
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
observedFeedRequest = true
|
||||
}
|
||||
})
|
||||
defer {
|
||||
d.dispose()
|
||||
}
|
||||
|
|
@ -99,9 +99,9 @@ class DelegateProxyTest : RxTest {
|
|||
var nMessages = 0
|
||||
|
||||
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didLearnSomething:)))
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
nMessages += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(nMessages == 0)
|
||||
view.delegate?.threeDView?(view, didLearnSomething: "Psssst ...")
|
||||
|
|
@ -137,10 +137,10 @@ class DelegateProxyTest : RxTest {
|
|||
var receivedArgument: IndexPath? = nil
|
||||
|
||||
let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:)))
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
let ip = n[1] as! IndexPath
|
||||
receivedArgument = ip
|
||||
}
|
||||
})
|
||||
defer {
|
||||
d.dispose()
|
||||
}
|
||||
|
|
@ -167,9 +167,9 @@ class DelegateProxyTest : RxTest {
|
|||
_ = view
|
||||
.rx_proxy
|
||||
.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:)))
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
completed = true
|
||||
}
|
||||
})
|
||||
|
||||
view.delegate?.threeDView?(view, didGetXXX: sentArgument)
|
||||
}
|
||||
|
|
@ -209,9 +209,9 @@ extension DelegateProxyTest {
|
|||
completed = true
|
||||
})
|
||||
|
||||
_ = (control as! NSObject).rx_deallocated.subscribeNext { _ in
|
||||
_ = (control as! NSObject).rx_deallocated.subscribe(onNext: { _ in
|
||||
deallocated = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssertTrue(receivedValue == nil)
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class Parent : NSObject {
|
|||
super.init()
|
||||
|
||||
self.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false)
|
||||
.subscribeNext(callback)
|
||||
.subscribe(onNext: callback)
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ class Child : NSObject {
|
|||
init(parent: ParentWithChild, callback: (String?) -> Void) {
|
||||
super.init()
|
||||
parent.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false)
|
||||
.subscribeNext(callback)
|
||||
.subscribe(onNext: callback)
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
|
|
@ -144,7 +144,7 @@ extension KVOObservableTests {
|
|||
|
||||
var latest: String?
|
||||
|
||||
let d = os .subscribeNext { latest = $0 }
|
||||
let d = os.subscribe(onNext: { latest = $0 })
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
|
||||
|
|
@ -178,7 +178,7 @@ extension KVOObservableTests {
|
|||
|
||||
var latest: String?
|
||||
|
||||
let d = os .subscribeNext { latest = $0 }
|
||||
let d = os.subscribe(onNext: { latest = $0 })
|
||||
|
||||
XCTAssertTrue(latest == "0")
|
||||
|
||||
|
|
@ -212,7 +212,7 @@ extension KVOObservableTests {
|
|||
|
||||
var latest: String?
|
||||
|
||||
let d = os .subscribeNext { latest = $0 }
|
||||
let d = os.subscribe(onNext: { latest = $0 })
|
||||
|
||||
XCTAssertTrue(latest == "0")
|
||||
|
||||
|
|
@ -248,9 +248,9 @@ extension KVOObservableTests {
|
|||
}
|
||||
|
||||
_ = parent.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == "")
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -275,9 +275,9 @@ extension KVOObservableTests {
|
|||
}
|
||||
|
||||
_ = parent.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == "")
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -306,14 +306,14 @@ extension KVOObservableTests {
|
|||
var root: HasStrongProperty! = HasStrongProperty()
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
XCTAssertTrue(!disposed)
|
||||
|
|
@ -336,14 +336,14 @@ extension KVOObservableTests {
|
|||
var root: HasWeakProperty! = HasWeakProperty()
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
XCTAssertTrue(!disposed)
|
||||
|
|
@ -370,14 +370,14 @@ extension KVOObservableTests {
|
|||
var root: HasWeakProperty! = HasWeakProperty()
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property.property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -419,14 +419,14 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(disposed == false)
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property.property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == "1")
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -447,14 +447,14 @@ extension KVOObservableTests {
|
|||
var root: HasStrongProperty! = HasStrongProperty()
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property.property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -496,14 +496,14 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(disposed == false)
|
||||
|
||||
_ = root.rx_observeWeakly(String.self, "property.property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
_ = root.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
disposed = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == "1")
|
||||
XCTAssertTrue(disposed == false)
|
||||
|
|
@ -536,9 +536,9 @@ extension KVOObservableTests {
|
|||
|
||||
let observable = root.rx_observeWeakly(NSObject.self, "property.property")
|
||||
_ = observable
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest! === one)
|
||||
|
||||
|
|
@ -553,9 +553,9 @@ extension KVOObservableTests {
|
|||
var gone = false
|
||||
let (child, latest, dealloc) = _testObserveWeak_Strong_Weak_Observe_NilLastPropertyBecauseOfWeak()
|
||||
_ = dealloc
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
gone = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(gone)
|
||||
XCTAssertTrue(child.property == nil)
|
||||
|
|
@ -579,9 +579,9 @@ extension KVOObservableTests {
|
|||
|
||||
let observable = root.rx_observeWeakly(NSObject.self, "property.property.property")
|
||||
_ = observable
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
|
||||
|
|
@ -602,9 +602,9 @@ extension KVOObservableTests {
|
|||
var gone = false
|
||||
|
||||
_ = deallocatedMiddle
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
gone = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(gone)
|
||||
XCTAssertTrue(root.property == nil)
|
||||
|
|
@ -622,9 +622,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(String.self, "property")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == "a")
|
||||
|
||||
|
|
@ -632,9 +632,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -653,9 +653,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(String.self, "property", options: .new)
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == nil)
|
||||
|
||||
|
|
@ -667,9 +667,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -687,9 +687,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(NSRect.self, "frame")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == root.frame)
|
||||
|
||||
root.frame = NSRect(x: -2, y: 0, width: 0, height: 1)
|
||||
|
|
@ -700,9 +700,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -723,9 +723,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let d = root.rx_observe(CGSize.self, "frame")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -741,9 +741,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -759,9 +759,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let d = root.rx_observe(CGRect.self, "frame")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -777,9 +777,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -795,9 +795,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let d = root.rx_observe(CGSize.self, "size")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -813,9 +813,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -831,9 +831,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let d = root.rx_observe(CGPoint.self, "point")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
defer {
|
||||
d.dispose()
|
||||
}
|
||||
|
|
@ -848,9 +848,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -868,9 +868,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(CGRect.self, "frame")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == root.frame)
|
||||
|
||||
root.frame = CGRect(x: -2, y: 0, width: 0, height: 1)
|
||||
|
|
@ -881,9 +881,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -900,9 +900,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(CGSize.self, "size")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == root.size)
|
||||
|
||||
root.size = CGSize(width: 56, height: 1)
|
||||
|
|
@ -913,9 +913,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -932,9 +932,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(CGPoint.self, "point")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == root.point)
|
||||
|
||||
|
|
@ -946,9 +946,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -965,9 +965,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(NSNumber.self, "integer")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n?.intValue
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == root.integer)
|
||||
|
||||
root.integer = 10
|
||||
|
|
@ -978,9 +978,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -994,9 +994,9 @@ extension KVOObservableTests {
|
|||
var lastError: Swift.Error? = nil
|
||||
|
||||
_ = root.rx_observeWeakly(NSNumber.self, "notExist")
|
||||
.subscribeError { error in
|
||||
.subscribe(onError: { error in
|
||||
lastError = error
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(lastError != nil)
|
||||
lastError = nil
|
||||
|
|
@ -1005,9 +1005,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1020,9 +1020,9 @@ extension KVOObservableTests {
|
|||
var lastError: Swift.Error? = nil
|
||||
|
||||
_ = root.rx_observeWeakly(NSNumber.self, "property.notExist")
|
||||
.subscribeError { error in
|
||||
.subscribe(onError: { error in
|
||||
lastError = error
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(lastError == nil)
|
||||
|
||||
|
|
@ -1034,9 +1034,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1056,9 +1056,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(Int.self, "integer")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == 1)
|
||||
|
||||
root.integer = 2
|
||||
|
|
@ -1069,9 +1069,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1089,9 +1089,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(UInt.self, "uinteger")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == 1)
|
||||
|
||||
root.uinteger = 2
|
||||
|
|
@ -1102,9 +1102,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1126,9 +1126,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(Int.self, "integer")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == 1)
|
||||
|
||||
|
|
@ -1140,9 +1140,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1159,9 +1159,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(UInt.self, "uinteger")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(latest == 1)
|
||||
|
||||
|
|
@ -1173,9 +1173,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1195,9 +1195,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(IntEnum.self, "intEnum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.intEnum = .two
|
||||
|
|
@ -1208,9 +1208,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1228,9 +1228,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(Int32Enum.self, "int32Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.int32Enum = .two
|
||||
|
|
@ -1241,9 +1241,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1261,9 +1261,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(Int64Enum.self, "int64Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.int64Enum = .two
|
||||
|
|
@ -1274,9 +1274,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1295,9 +1295,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(UIntEnum.self, "uintEnum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uintEnum = .two
|
||||
|
|
@ -1308,9 +1308,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1328,9 +1328,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(UInt32Enum.self, "uint32Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uint32Enum = .two
|
||||
|
|
@ -1341,9 +1341,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1361,9 +1361,9 @@ extension KVOObservableTests {
|
|||
XCTAssertTrue(latest == nil)
|
||||
|
||||
let disposable = root.rx_observe(UInt64Enum.self, "uint64Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uint64Enum = .two
|
||||
|
|
@ -1374,9 +1374,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1398,9 +1398,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(IntEnum.self, "intEnum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.intEnum = .two
|
||||
|
|
@ -1411,9 +1411,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1430,9 +1430,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(Int32Enum.self, "int32Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.int32Enum = .two
|
||||
|
|
@ -1443,9 +1443,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1462,9 +1462,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(Int64Enum.self, "int64Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.int64Enum = .two
|
||||
|
|
@ -1475,9 +1475,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1494,9 +1494,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(UIntEnum.self, "uintEnum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uintEnum = .two
|
||||
|
|
@ -1507,9 +1507,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1526,9 +1526,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(UInt32Enum.self, "uint32Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uint32Enum = .two
|
||||
|
|
@ -1539,9 +1539,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
@ -1558,9 +1558,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_observeWeakly(UInt32Enum.self, "uint64Enum")
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
latest = n
|
||||
}
|
||||
})
|
||||
XCTAssertTrue(latest == .one)
|
||||
|
||||
root.uint64Enum = .two
|
||||
|
|
@ -1571,9 +1571,9 @@ extension KVOObservableTests {
|
|||
|
||||
_ = root
|
||||
.rx_deallocated
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
rootDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
root = nil
|
||||
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ class NSNotificationCenterTests : RxTest {
|
|||
XCTAssertTrue(numberOfNotifications == 0)
|
||||
|
||||
let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: nil)
|
||||
.subscribeNext { n in
|
||||
numberOfNotifications += 1
|
||||
}
|
||||
.subscribe(onNext: { n in
|
||||
numberOfNotifications += 1
|
||||
})
|
||||
|
||||
XCTAssertTrue(numberOfNotifications == 0)
|
||||
|
||||
|
|
@ -58,9 +58,9 @@ class NSNotificationCenterTests : RxTest {
|
|||
XCTAssertTrue(numberOfNotifications == 0)
|
||||
|
||||
let subscription = notificationCenter.rx_notification(Notification.Name(rawValue: "testNotification"), object: targetObject)
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
numberOfNotifications += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertTrue(numberOfNotifications == 0)
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
||||
|
|
@ -48,9 +48,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
||||
|
|
@ -69,9 +69,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
.dispose()
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
|
@ -95,9 +95,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
||||
|
|
@ -116,9 +116,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeCompleted {
|
||||
.subscribe(onCompleted: {
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
||||
|
|
@ -137,9 +137,9 @@ extension NSObjectTests {
|
|||
.map { _ in
|
||||
return 1
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
fired = true
|
||||
}
|
||||
})
|
||||
.dispose()
|
||||
|
||||
XCTAssertFalse(fired)
|
||||
|
|
|
|||
|
|
@ -35,9 +35,9 @@ extension RxTest {
|
|||
})
|
||||
|
||||
|
||||
_ = control.rx_deallocated.subscribeNext { _ in
|
||||
_ = control.rx_deallocated.subscribe(onNext: { _ in
|
||||
deallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
control = nil
|
||||
}
|
||||
|
|
@ -77,9 +77,9 @@ extension RxTest {
|
|||
completed = true
|
||||
})
|
||||
|
||||
_ = control.rx_deallocated.subscribeNext { _ in
|
||||
_ = control.rx_deallocated.subscribe(onNext: { _ in
|
||||
deallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
outerDisposable.disposable = disposable
|
||||
}
|
||||
|
|
@ -101,9 +101,9 @@ extension RxTest {
|
|||
|
||||
observable.bindTo(propertyObserver).addDisposableTo(disposeBag)
|
||||
|
||||
_ = control.rx_deallocated.subscribeNext { _ in
|
||||
_ = control.rx_deallocated.subscribe(onNext: { _ in
|
||||
deallocated = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssertTrue(deallocated)
|
||||
|
|
|
|||
|
|
@ -497,8 +497,8 @@ extension SentMessageTest {
|
|||
|
||||
let disposeBag = DisposeBag()
|
||||
target.rx_observe(NSArray.self, "messages")
|
||||
.subscribeNext { _ in
|
||||
}
|
||||
.subscribe(onNext: { _ in
|
||||
})
|
||||
.addDisposableTo(disposeBag)
|
||||
|
||||
do {
|
||||
|
|
@ -576,13 +576,13 @@ extension SentMessageTest {
|
|||
let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledBool(toSay:)))
|
||||
|
||||
let kvo = target.rx_observe(NSArray.self, "messages")
|
||||
.subscribeNext { _ in
|
||||
}
|
||||
.subscribe(onNext: { _ in
|
||||
})
|
||||
|
||||
var recordedMessages = [MethodParameters]()
|
||||
let methodObserving = messages.subscribeNext { n in
|
||||
let methodObserving = messages.subscribe(onNext: { n in
|
||||
recordedMessages.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
target.justCalledBool(toSay: true)
|
||||
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ class UICollectionViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = collectionView.rx_itemSelected
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: testRow)
|
||||
|
|
@ -48,9 +48,9 @@ class UICollectionViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = collectionView.rx_itemDeselected
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: testRow)
|
||||
|
|
@ -128,9 +128,9 @@ class UICollectionViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = collectionView.rx_modelSelected(Int.self)
|
||||
.subscribeNext { (item: Int) in
|
||||
.subscribe(onNext: { (item: Int) in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -159,9 +159,9 @@ class UICollectionViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = collectionView.rx_modelSelected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -190,9 +190,9 @@ class UICollectionViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = collectionView.rx_modelDeselected(Int.self)
|
||||
.subscribeNext { (item: Int) in
|
||||
.subscribe(onNext: { (item: Int) in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -221,9 +221,9 @@ class UICollectionViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = collectionView.rx_modelDeselected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -270,9 +270,9 @@ extension UICollectionViewTests {
|
|||
let dataSource = SectionedViewDataSourceMock()
|
||||
dataSourceSubscription = items.bindTo(collectionView.rx_items(dataSource: dataSource))
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
|
|
@ -293,9 +293,9 @@ extension UICollectionViewTests {
|
|||
let dataSource = SectionedViewDataSourceMock()
|
||||
_ = items.bindTo(collectionView.rx_items(dataSource: dataSource))
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
}
|
||||
|
|
@ -313,9 +313,9 @@ extension UICollectionViewTests {
|
|||
let dataSource = SectionedViewDataSourceMock()
|
||||
_ = collectionView.rx_setDataSource(dataSource)
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ class UIPickerViewTests: RxTest {
|
|||
var result: (row: Int, component: Int)?
|
||||
|
||||
autoreleasepool {
|
||||
_ = pickerView.rx_itemSelected.subscribeNext { (element) in
|
||||
_ = pickerView.rx_itemSelected.subscribe(onNext: { (element) in
|
||||
result = element
|
||||
}
|
||||
})
|
||||
pickerView.delegate!.pickerView!(pickerView,
|
||||
didSelectRow: row,
|
||||
inComponent: component)
|
||||
|
|
|
|||
|
|
@ -52,9 +52,9 @@ extension UIScrollViewTests {
|
|||
let delegate = MockScrollViewDelegate()
|
||||
_ = scrollView.rx_setDelegate(delegate)
|
||||
|
||||
_ = delegate.rx_deallocated.subscribeNext { _ in
|
||||
_ = delegate.rx_deallocated.subscribe(onNext: { _ in
|
||||
delegateDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssert(delegateDeallocated == false)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ class UISearchBarTests : RxTest {
|
|||
var latestText: String! = nil
|
||||
|
||||
// search bar should dispose this itself
|
||||
_ = searchBar.rx_text.subscribeNext { text in
|
||||
_ = searchBar.rx_text.subscribe(onNext: { text in
|
||||
latestText = text
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(latestText, "")
|
||||
|
||||
|
|
@ -56,9 +56,9 @@ class UISearchBarTests : RxTest {
|
|||
|
||||
var latestSelectedScopeIndex: Int = -1
|
||||
|
||||
_ = searchBar.rx_selectedScopeButtonIndex.subscribeNext { index in
|
||||
_ = searchBar.rx_selectedScopeButtonIndex.subscribe(onNext: { index in
|
||||
latestSelectedScopeIndex = index
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(latestSelectedScopeIndex, 0)
|
||||
|
||||
|
|
@ -83,9 +83,9 @@ class UISearchBarTests : RxTest {
|
|||
|
||||
var tapped = false
|
||||
|
||||
let _ = searchBar.rx_cancelButtonClicked.subscribeNext { _ in
|
||||
let _ = searchBar.rx_cancelButtonClicked.subscribe(onNext: { _ in
|
||||
tapped = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(tapped)
|
||||
searchBar.delegate!.searchBarCancelButtonClicked!(searchBar)
|
||||
|
|
@ -103,9 +103,9 @@ class UISearchBarTests : RxTest {
|
|||
|
||||
var tapped = false
|
||||
|
||||
let _ = searchBar.rx_searchButtonClicked.subscribeNext { _ in
|
||||
let _ = searchBar.rx_searchButtonClicked.subscribe(onNext: { _ in
|
||||
tapped = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertFalse(tapped)
|
||||
searchBar.delegate!.searchBarSearchButtonClicked!(searchBar)
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ extension UITabBarTests {
|
|||
var returnedItems: [UITabBarItem]!
|
||||
|
||||
_ = subject.rx_willBeginCustomizing
|
||||
.subscribeNext { i in
|
||||
.subscribe(onNext: { i in
|
||||
returnedItems = i
|
||||
}
|
||||
})
|
||||
subject.delegate!.tabBar!(subject, willBeginCustomizing: items)
|
||||
|
||||
XCTAssertEqual(returnedItems, items)
|
||||
|
|
@ -47,9 +47,9 @@ extension UITabBarTests {
|
|||
var returnedItems: [UITabBarItem]!
|
||||
|
||||
_ = subject.rx_didBeginCustomizing
|
||||
.subscribeNext { i in
|
||||
.subscribe(onNext: { i in
|
||||
returnedItems = i
|
||||
}
|
||||
})
|
||||
|
||||
subject.delegate!.tabBar!(subject, didBeginCustomizing: items)
|
||||
|
||||
|
|
@ -64,10 +64,10 @@ extension UITabBarTests {
|
|||
var changed: Bool!
|
||||
|
||||
_ = subject.rx_willEndCustomizing
|
||||
.subscribeNext { (i, c) in
|
||||
.subscribe(onNext: { (i, c) in
|
||||
returnedItems = i
|
||||
changed = c
|
||||
}
|
||||
})
|
||||
subject.delegate!.tabBar!(subject, willEndCustomizing: items, changed: true)
|
||||
|
||||
XCTAssertEqual(returnedItems, items)
|
||||
|
|
@ -82,10 +82,10 @@ extension UITabBarTests {
|
|||
var changed: Bool!
|
||||
|
||||
_ = subject.rx_didEndCustomizing
|
||||
.subscribeNext { (i, c) in
|
||||
.subscribe(onNext: { (i, c) in
|
||||
returnedItems = i
|
||||
changed = c
|
||||
}
|
||||
})
|
||||
|
||||
subject.delegate!.tabBar!(subject, didEndCustomizing: items, changed: true)
|
||||
|
||||
|
|
@ -108,9 +108,9 @@ extension UITabBarTests {
|
|||
var returnedItem: UITabBarItem!
|
||||
|
||||
_ = subject.rx_didSelectItem
|
||||
.subscribeNext { i in
|
||||
.subscribe(onNext: { i in
|
||||
returnedItem = i
|
||||
}
|
||||
})
|
||||
|
||||
subject.delegate!.tabBar!(subject, didSelect: item)
|
||||
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemSelected
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
tableView.delegate!.tableView!(tableView, didSelectRowAt: testRow)
|
||||
|
|
@ -51,9 +51,9 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemDeselected
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
tableView.delegate!.tableView!(tableView, didDeselectRowAt: testRow)
|
||||
|
|
@ -68,9 +68,9 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemAccessoryButtonTapped
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
tableView.delegate!.tableView!(tableView, accessoryButtonTappedForRowWith: testRow)
|
||||
|
|
@ -85,9 +85,9 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemDeleted
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
tableView.dataSource!.tableView!(tableView, commit: .delete, forRowAt: testRow)
|
||||
|
|
@ -102,9 +102,9 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemInserted
|
||||
.subscribeNext { indexPath in
|
||||
.subscribe(onNext: { indexPath in
|
||||
resultIndexPath = indexPath
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
tableView.dataSource!.tableView!(tableView, commit: .insert, forRowAt: testRow)
|
||||
|
|
@ -120,10 +120,10 @@ class UITableViewTests : RxTest {
|
|||
var resultCell: UITableViewCell? = nil
|
||||
|
||||
let subscription = tableView.rx_willDisplayCell
|
||||
.subscribeNext { (cell, indexPath) in
|
||||
.subscribe(onNext: { (cell, indexPath) in
|
||||
resultIndexPath = indexPath
|
||||
resultCell = cell
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
let testCell = UITableViewCell()
|
||||
|
|
@ -141,10 +141,10 @@ class UITableViewTests : RxTest {
|
|||
var resultCell: UITableViewCell? = nil
|
||||
|
||||
let subscription = tableView.rx_didEndDisplayingCell
|
||||
.subscribeNext { (cell, indexPath) in
|
||||
.subscribe(onNext: { (cell, indexPath) in
|
||||
resultIndexPath = indexPath
|
||||
resultCell = cell
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
let testCell = UITableViewCell()
|
||||
|
|
@ -162,10 +162,10 @@ class UITableViewTests : RxTest {
|
|||
var resultIndexPath2: IndexPath? = nil
|
||||
|
||||
let subscription = tableView.rx_itemMoved
|
||||
.subscribeNext { (indexPath, indexPath2) in
|
||||
.subscribe(onNext: { (indexPath, indexPath2) in
|
||||
resultIndexPath = indexPath
|
||||
resultIndexPath2 = indexPath2
|
||||
}
|
||||
})
|
||||
|
||||
let testRow = IndexPath(row: 1, section: 0)
|
||||
let testRow2 = IndexPath(row: 1, section: 0)
|
||||
|
|
@ -237,9 +237,9 @@ class UITableViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = tableView.rx_modelSelected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -267,9 +267,9 @@ class UITableViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = tableView.rx_modelSelected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -296,9 +296,9 @@ class UITableViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = tableView.rx_modelDeselected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0))
|
||||
|
||||
|
|
@ -326,9 +326,9 @@ class UITableViewTests : RxTest {
|
|||
var selectedItem: Int? = nil
|
||||
|
||||
let s = tableView.rx_modelDeselected(Int.self)
|
||||
.subscribeNext { item in
|
||||
.subscribe(onNext: { item in
|
||||
selectedItem = item
|
||||
}
|
||||
})
|
||||
|
||||
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))
|
||||
dataSourceSubscription = items.bindTo(tableView.rx_items(dataSource: dataSource))
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
|
|
@ -394,9 +394,9 @@ extension UITableViewTests {
|
|||
let dataSource = SectionedViewDataSourceMock()
|
||||
_ = items.bindTo(tableView.rx_items(dataSource: dataSource))
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
}
|
||||
|
|
@ -414,9 +414,9 @@ extension UITableViewTests {
|
|||
let dataSource = SectionedViewDataSourceMock()
|
||||
_ = tableView.rx_setDataSource(dataSource)
|
||||
|
||||
_ = dataSource.rx_deallocated.subscribeNext { _ in
|
||||
_ = dataSource.rx_deallocated.subscribe(onNext: { _ in
|
||||
dataSourceDeallocated = true
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssert(dataSourceDeallocated == false)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ extension AnonymousObservableTests {
|
|||
|
||||
var elements = [Int]()
|
||||
|
||||
let d = a.subscribeNext { n in
|
||||
let d = a.subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(elements, [])
|
||||
|
||||
|
|
@ -48,9 +48,9 @@ extension AnonymousObservableTests {
|
|||
|
||||
var elements = [Int]()
|
||||
|
||||
_ = a.subscribeNext { n in
|
||||
_ = a.subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(elements, [])
|
||||
|
||||
|
|
@ -72,9 +72,9 @@ extension AnonymousObservableTests {
|
|||
|
||||
var elements = [Int]()
|
||||
|
||||
_ = a.subscribeNext { n in
|
||||
_ = a.subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(elements, [])
|
||||
|
||||
|
|
|
|||
|
|
@ -65,14 +65,14 @@ class AssumptionsTest : RxTest {
|
|||
|
||||
func testFunctionReturnValueOverload() {
|
||||
_ = returnSomething()
|
||||
.subscribeNext { (n: AnyObject?) in
|
||||
.subscribe(onNext: { (n: AnyObject?) in
|
||||
XCTAssertEqual(n as? NSNull, NSNull())
|
||||
}
|
||||
})
|
||||
|
||||
_ = returnSomething()
|
||||
.subscribeNext { (n: Int?) in
|
||||
.subscribe(onNext: { (n: Int?) in
|
||||
XCTAssertEqual(n!, 3)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func testArrayMutation() {
|
||||
|
|
|
|||
|
|
@ -198,9 +198,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
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
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -217,9 +217,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
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
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -236,9 +236,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = TestConnectableObservable(o: Observable.error(testError), s: subject)
|
||||
let d = observable.subscribeError { n in
|
||||
let d = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -255,9 +255,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = TestConnectableObservable(o: Observable.empty(), s: subject)
|
||||
let d = observable.subscribeCompleted {
|
||||
let d = observable.subscribe(onCompleted: {
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
@ -1087,9 +1087,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = transform(Observable.of(0, 1, 2))
|
||||
_ = observable.subscribeNext { n in
|
||||
_ = observable.subscribe(onNext: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 3)
|
||||
}
|
||||
|
|
@ -1100,9 +1100,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = transform(Observable.empty())
|
||||
_ = observable.subscribeCompleted { n in
|
||||
_ = observable.subscribe(onCompleted: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1113,9 +1113,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = transform(Observable.error(testError))
|
||||
_ = observable.subscribeError { _ in
|
||||
_ = observable.subscribe(onError: { _ in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1126,9 +1126,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = transform([Observable.of(0, 1, 2), Observable.error(testError)].concat())
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1397,9 +1397,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = Observable.of(0, 1, 2).shareReplayLatestWhileConnected()
|
||||
_ = observable.subscribeNext { n in
|
||||
_ = observable.subscribe(onNext: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 3)
|
||||
}
|
||||
|
|
@ -1408,9 +1408,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = Observable<Int>.empty().shareReplayLatestWhileConnected()
|
||||
_ = observable.subscribeCompleted { n in
|
||||
_ = observable.subscribe(onCompleted: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1419,9 +1419,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = Observable<Int>.error(testError).shareReplayLatestWhileConnected()
|
||||
_ = observable.subscribeError { _ in
|
||||
_ = observable.subscribe(onError: { _ in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1430,9 +1430,9 @@ extension ObservableBindingTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable = [Observable.of(0, 1, 2), Observable.error(testError)].concat().shareReplayLatestWhileConnected()
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,10 +76,10 @@ extension ObservableConcurrencyTest {
|
|||
runDispatchQueueSchedulerTests { scheduler in
|
||||
let observable = Observable.just(0)
|
||||
.observeOn(scheduler)
|
||||
return observable .subscribeNext { n in
|
||||
return observable.subscribe(onNext: { n in
|
||||
didExecute = true
|
||||
XCTAssert(Thread.current !== unitTestsThread)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -128,9 +128,9 @@ extension ObservableConcurrencyTest {
|
|||
|
||||
runDispatchQueueSchedulerTests { scheduler in
|
||||
let observable: Observable<Int> = Observable.error(testError).observeOn(scheduler)
|
||||
return observable .subscribeError { n in
|
||||
return observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
|
|
@ -142,9 +142,9 @@ extension ObservableConcurrencyTest {
|
|||
runDispatchQueueSchedulerTests { scheduler in
|
||||
let observable: Observable<Int> = Observable.empty().observeOn(scheduler)
|
||||
|
||||
return observable.subscribeCompleted {
|
||||
return observable.subscribe(onCompleted: {
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
|
|
@ -155,9 +155,9 @@ extension ObservableConcurrencyTest {
|
|||
let xs: Observable<Int> = Observable.never()
|
||||
return xs
|
||||
.observeOn(scheduler)
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
XCTAssert(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -382,9 +382,9 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas
|
|||
let xs: Observable<Int> = Observable.never()
|
||||
let subscription = xs
|
||||
.observeOn(scheduler)
|
||||
.subscribeNext { n in
|
||||
.subscribe(onNext: { n in
|
||||
XCTAssert(false)
|
||||
}
|
||||
})
|
||||
|
||||
sleep(0.1)
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ extension ObservableMultipleTest {
|
|||
var result: Int! = nil
|
||||
|
||||
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)
|
||||
}
|
||||
|
|
@ -179,7 +179,7 @@ extension ObservableMultipleTest {
|
|||
var result: Int! = nil
|
||||
|
||||
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)
|
||||
}
|
||||
|
|
@ -360,7 +360,7 @@ extension ObservableMultipleTest {
|
|||
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 }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, 10)
|
||||
}
|
||||
|
|
@ -570,7 +570,7 @@ extension ObservableMultipleTest {
|
|||
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 }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, 15)
|
||||
}
|
||||
|
|
@ -810,7 +810,7 @@ extension ObservableMultipleTest {
|
|||
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 }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, 21)
|
||||
}
|
||||
|
|
@ -1081,7 +1081,7 @@ extension ObservableMultipleTest {
|
|||
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 }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, 28)
|
||||
}
|
||||
|
|
@ -1384,7 +1384,7 @@ extension ObservableMultipleTest {
|
|||
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 }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, 36)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ extension ObservableMultipleTest {
|
|||
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: " + ") %> }
|
||||
.subscribeNext { (x: Int) -> Void in result = x }
|
||||
.subscribe(onNext: { (x: Int) -> Void in result = x })
|
||||
|
||||
XCTAssertEqual(result, <%= (i + 1) * i / 2 %>)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -939,9 +939,9 @@ func generateSequence<T>(_ startIndex: Int, _ generator: (Int) -> Observable<T>)
|
|||
extension ObservableMultipleTest {
|
||||
func testConcat_DefaultScheduler() {
|
||||
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
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(sum, 6)
|
||||
}
|
||||
|
|
@ -1562,9 +1562,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
).merge()
|
||||
|
||||
_ = observable.subscribeNext { n in
|
||||
_ = observable.subscribe(onNext: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 9)
|
||||
}
|
||||
|
|
@ -1578,9 +1578,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
).merge()
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1592,9 +1592,9 @@ extension ObservableMultipleTest {
|
|||
Observable.error(testError)
|
||||
).merge()
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1603,9 +1603,9 @@ extension ObservableMultipleTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge()
|
||||
_ = observable.subscribeCompleted {
|
||||
_ = observable.subscribe(onCompleted: {
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1614,9 +1614,9 @@ extension ObservableMultipleTest {
|
|||
var nEvents = 0
|
||||
|
||||
let observable: Observable<Int> = Observable.just(Observable.empty()).merge()
|
||||
_ = observable.subscribeCompleted { n in
|
||||
_ = observable.subscribe(onCompleted: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1630,9 +1630,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
).merge(maxConcurrent: 1)
|
||||
|
||||
_ = observable.subscribeNext { n in
|
||||
_ = observable.subscribe(onNext: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 9)
|
||||
}
|
||||
|
|
@ -1646,9 +1646,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
).merge(maxConcurrent: 1)
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1660,9 +1660,9 @@ extension ObservableMultipleTest {
|
|||
Observable.error(testError)
|
||||
).merge(maxConcurrent: 1)
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1672,9 +1672,9 @@ extension ObservableMultipleTest {
|
|||
|
||||
let observable: Observable<Int> = Observable<Observable<Int>>.empty().merge(maxConcurrent: 1)
|
||||
|
||||
_ = observable.subscribeCompleted {
|
||||
_ = observable.subscribe(onCompleted: {
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -1684,9 +1684,9 @@ extension ObservableMultipleTest {
|
|||
|
||||
let observable: Observable<Int> = Observable.just(Observable.empty()).merge(maxConcurrent: 1)
|
||||
|
||||
_ = observable.subscribeCompleted { n in
|
||||
_ = observable.subscribe(onCompleted: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -2509,9 +2509,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
) { $0 + $1 }
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -2524,9 +2524,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
) { $0 + $1 }
|
||||
|
||||
_ = observable.subscribeError { n in
|
||||
_ = observable.subscribe(onError: { n in
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
@ -2540,9 +2540,9 @@ extension ObservableMultipleTest {
|
|||
Observable.of(0, 1, 2)
|
||||
) { $0 + $1 }
|
||||
|
||||
_ = observable.subscribeCompleted {
|
||||
_ = observable.subscribe(onCompleted: {
|
||||
nEvents += 1
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(nEvents, 1)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1032,9 +1032,9 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
.map { a in
|
||||
return a
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func testMap1_DisposeOnCompleted() {
|
||||
|
|
@ -1042,9 +1042,9 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
.mapWithIndex { (a, i) in
|
||||
return a
|
||||
}
|
||||
.subscribeNext { _ in
|
||||
.subscribe(onNext: { _ in
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3639,9 +3639,9 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
func testTake_DecrementCountsFirst() {
|
||||
let k = BehaviorSubject(value: false)
|
||||
|
||||
_ = k.take(1).subscribeNext { n in
|
||||
_ = k.take(1).subscribe(onNext: { n in
|
||||
k.on(.next(!n))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3888,10 +3888,10 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
let k = BehaviorSubject(value: false)
|
||||
|
||||
var elements = [Bool]()
|
||||
_ = k.takeLast(1).subscribeNext { n in
|
||||
_ = k.takeLast(1).subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
k.on(.next(!n))
|
||||
}
|
||||
})
|
||||
|
||||
k.on(.completed)
|
||||
|
||||
|
|
@ -5071,9 +5071,9 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
func testSingle_DecrementCountsFirst() {
|
||||
let k = BehaviorSubject(value: false)
|
||||
|
||||
_ = k.single { _ in true }.subscribeNext { n in
|
||||
_ = k.single { _ in true }.subscribe(onNext: { n in
|
||||
k.on(.next(!n))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func testSinglePredicate_Empty() {
|
||||
|
|
@ -5211,9 +5211,9 @@ extension ObservableStandardSequenceOperatorsTest {
|
|||
func testSinglePredicate_DecrementCountsFirst() {
|
||||
let k = BehaviorSubject(value: false)
|
||||
|
||||
_ = k.single { _ in true }.subscribeNext { n in
|
||||
_ = k.single { _ in true }.subscribe(onNext: { n in
|
||||
k.on(.next(!n))
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ extension ObserverTests {
|
|||
|
||||
var elements = [Int]()
|
||||
|
||||
_ = a.subscribeNext { n in
|
||||
_ = a.subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(elements, [])
|
||||
|
||||
|
|
@ -72,9 +72,9 @@ extension ObserverTests {
|
|||
|
||||
var elements = [Int]()
|
||||
|
||||
_ = a.subscribeNext { n in
|
||||
_ = a.subscribe(onNext: { n in
|
||||
elements.append(n)
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(elements, [])
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ extension SubjectConcurrencyTest {
|
|||
var allDone = false
|
||||
|
||||
var state = 0
|
||||
_ = observable.subscribeNext { [unowned o] n in
|
||||
_ = observable.subscribe(onNext: { [unowned o] n in
|
||||
if n < 0 {
|
||||
return
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@ extension SubjectConcurrencyTest {
|
|||
XCTAssertTrue(isMainThread())
|
||||
allDone = true
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
_observer.on(.next(0))
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ extension SubjectConcurrencyTest {
|
|||
|
||||
var ranAll = false
|
||||
|
||||
_ = observable.subscribeNext { [unowned o] n in
|
||||
_ = observable.subscribe(onNext: { [unowned o] n in
|
||||
if n < 0 {
|
||||
return
|
||||
}
|
||||
|
|
@ -110,7 +110,7 @@ extension SubjectConcurrencyTest {
|
|||
o.value.on(.completed)
|
||||
ranAll = true
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
o.value.on(.next(0))
|
||||
XCTAssertTrue(ranAll)
|
||||
|
|
@ -125,7 +125,7 @@ extension SubjectConcurrencyTest {
|
|||
|
||||
var ranAll = false
|
||||
|
||||
_ = observable.subscribeNext { [unowned o] n in
|
||||
_ = observable.subscribe(onNext: { [unowned o] n in
|
||||
if n < 0 {
|
||||
return
|
||||
}
|
||||
|
|
@ -141,7 +141,7 @@ extension SubjectConcurrencyTest {
|
|||
o.value.on(.error(testError))
|
||||
ranAll = true
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
o.value.on(.next(0))
|
||||
XCTAssertTrue(ranAll)
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ class VariableTest : RxTest {
|
|||
var latestValue: Int?
|
||||
|
||||
let subscription = c
|
||||
.subscribeNext { next in
|
||||
.subscribe(onNext: { next in
|
||||
latestValue = next
|
||||
}
|
||||
})
|
||||
|
||||
XCTAssertEqual(latestValue!, 3)
|
||||
|
||||
|
|
@ -82,10 +82,10 @@ class VariableTest : RxTest {
|
|||
var latestValueOfC : Int? = nil
|
||||
// let _ = doesn't retain.
|
||||
let d/*: Disposable*/ = c
|
||||
.subscribeNext { c in
|
||||
.subscribe(onNext: { c in
|
||||
//print("Next value of c = \(c)")
|
||||
latestValueOfC = c
|
||||
}
|
||||
})
|
||||
|
||||
defer {
|
||||
d.dispose()
|
||||
|
|
|
|||
Loading…
Reference in New Issue