gpt4 book ai didi

swift - 可观察的当前值和先前值

转载 作者:IT王子 更新时间:2023-10-29 05:28:19 24 4
gpt4 key购买 nike

我有一个变量,它是一个枚举值数组。这些值随时间变化。

enum Option {
case One
case Two
case Three
}

let options = Variable<[Option]>([ .One, .Two, .Three ])

然后我观察这个变量的变化。问题是,我需要知道最新值和先前值之间的差异。我目前正在这样做:

let previousOptions: [Option] = [ .One, .Two, .Three ]

...

options
.asObservable()
.subscribeNext { [unowned self] opts in
// Do some work diff'ing previousOptions and opt
// ....
self.previousOptions = opts
}

RxSwift 是否有内置的东西可以更好地管理它?有没有办法始终从信号中获取先前值和当前值?

最佳答案

这是一个方便的通用扩展,应该涵盖这些“我想要以前的和当前的值”用例:

extension ObservableType {

func withPrevious(startWith first: E) -> Observable<(E, E)> {
return scan((first, first)) { ($0.1, $1) }.skip(1)
}
}

关于swift - 可观察的当前值和先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050347/

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