gpt4 book ai didi

ios - 是否可以在 RxSwift 中使用 Observable.interval?

转载 作者:行者123 更新时间:2023-11-28 06:39:22 24 4
gpt4 key购买 nike

你好,我有一个问题,到目前为止,我在 RxSwift 上找到的所有文档都使用如下所示的可观察间隔:

let subscription = Observable<Int>.interval(0.3, scheduler: scheduler)
.subscribe { event in
print(event)
}

NSThread.sleepForTimeInterval(2)

subscription.dispose()

现在我需要实现一个 Observable<Double>.interval计时器,我想在 Observable 的 subscribeNext 调用中使用 Double 值。

将以上代码更改为Double后作为测试,我有一个错误说 Type Observable<Double> has no member IntegerLiteralType ,有人知道如何在 RxSwift 中实现这个吗?

最佳答案

extension Observable where Element : SignedIntegerType {
/**
Returns an observable sequence that produces a value after each period, using the specified scheduler to run timers and to send out observer messages.

- seealso: [interval operator on reactivex.io](http://reactivex.io/documentation/operators/interval.html)

- parameter period: Period for producing the values in the resulting sequence.
- parameter scheduler: Scheduler to run the timer on.
- returns: An observable sequence that produces a value after each period.
*/
@warn_unused_result(message="http://git.io/rxs.uo")
public static func interval(period: RxTimeInterval, scheduler: SchedulerType)
-> Observable<E> {
return Timer(dueTime: period,
period: period,
scheduler: scheduler
)
}
}

元素类型是 SignedIntegerType。所以你不能使用Double。如果你想使用double,你可以重写Timer和相关类。但我不建议重写它。你可以考虑另一种方法。

关于ios - 是否可以在 RxSwift 中使用 Observable<Double>.interval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391021/

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