gpt4 book ai didi

swift - RxSwift 如何附加到 BehaviorSubject<[]>

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:44 27 4
gpt4 key购买 nike

由于 Variable 在 RxSwift 4 中被弃用,BehaviorSubject 执行以下操作的等效方法是什么?

let observable = Variable<[Int]>([])
observable.value.append(1)

最佳答案

BehaviorRelay 是新版本 RxSwiftVariable 的替代品,它们的工作方式似乎相似。 Variable 有一个属性value,它在改变时发出事件。与 BehaviorRelay 类似,您可以使用底层 accept(:) 方法来更改值。

let array = BehaviorRelay(value: [1, 2, 3])

array.subscribe(onNext: { value in
print(value)
}).disposed(by: disposeBag)


// for changing the value, simply get current value and append new value to it
array.accept(array.value + [4])

不过,如果您愿意,也可以使用 BeviourSubject 来解决这个问题,

let subject = BehaviorSubject(value: [10, 20])
subject.asObserver().subscribe(onNext: { value in
print(value)
}).disposed(by: disposeBag)

您可以使用抛出函数 value()BehaviorSubject 获取最新值,因此附加值看起来像这样,

do {
try subject.onNext(subject.value() + [40]) // concatenating older value with new
} catch {
print(error)
}

请注意,您需要调用 onNext 将新值传递给 BehaviorSubject,这不像使用 VariableBahaviorRelay 那样简单

关于swift - RxSwift 如何附加到 BehaviorSubject<[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49244270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com