【问题标题】:Creating an observable with RxSwift使用 RxSwift 创建一个 observable
【发布时间】:2017-02-02 17:39:22
【问题描述】:

我正在使用 RxSwift,并且我正在尝试扩展另一个我正在使用的库以使某些东西可观察。

库基本上在每次值更改时调用一个委托方法,我想挂接到这个,每当它调用委托时,还将新值添加到我想在我的子类中创建的可观察序列中。

我已经了解了如何创建可观察序列,但在每个示例中,next 事件都在Observable.create 方法的块内发送给观察者。我不知道如何从传递给create的这个块的“外部”向可观察序列添加东西。

我只想创建一些我可以观察或可以使用 RxSwift 驱动的东西,并在某些点手动添加到序列中。

如果有人能指出我正确的方向,我将不胜感激,因为我对此很陌生。

【问题讨论】:

    标签: ios swift rx-swift


    【解决方案1】:

    Observable 是只读接口。 Observable.create 创建的序列只能产生构造时给出的值,仅此而已。用你的话来说,你不能“添加东西”。用 RxSwift 的术语来说,你不能只使用 Observable 接口,你还需要 ObserverType - 它还必须观察你的变异值。在 RxSwift 中有不止一种方法可以做到这一点,但我认为你需要 PublishSubject:

    let value = PublishSubject<YourType>()
    let disposer = DisposeBag()
    
    init() {
      value.subscribe(onNext: { (newValue) in 
        // use newValue ...
      }).addDisposableTo(disposer)
    }
    
    func yourDelegateHandler(newValue: YourType)
    {
      value.onNext(newValue)      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多