如何在RxSwift中初始化可观察的属性?

Ear*_*rey 4 ios swift rx-swift

我觉得这很令人困惑。来自ReactiveCocoa,我希望有这种可能。

在此处输入图片说明

如何将可观察到的RxSwift初始化为5?

小智 7

您可以通过多种方式创建流:

主要方式

    Observable<Int>.create { observer -> Disposable in

        // Send events through observer
        observer.onNext(3)
        observer.onError(NSError(domain: "", code: 1, userInfo: nil))
        observer.onCompleted()

        return Disposables.create {
            // Clean up when stream is deallocated
        }
    }
Run Code Online (Sandbox Code Playgroud)

捷径

    Observable<Int>.empty() // Completes straight away
    Observable<Int>.never() // Never gets any event into the stream, waits forever
    Observable<Int>.just(1) // Emit value "1" and completes
Run Code Online (Sandbox Code Playgroud)

通过主题(又名Property/ MutableProperty在ReactiveSwift中)

Variable is deprecated in RxSwift 4, but it's just a wrapper around BehaviourSubject, so you can use it instead.

There are 2 most used subjects

BehaviorSubject - it will emit current value and upcoming ones. Because it will emit current value it needs to be initialised with a value BehaviorSubject<Int>(value: 0)

PublishSubject - it will emit upcoming values. It doesn't require initial value while initialising PublishSubject<Int>()

Then you can call .asObservable() on subject instance to get an observable.