小编mrw*_*eet的帖子

SwiftUI 和 CombineLatest 具有超过 4 个值

我开始尝试使用 SwiftUI,但我想要最新的 5 个滑块组合。我有 4 个滑块的所有工作,使用CombineLatest4,然后意识到我需要另一个滑块,但没有CombineLatest5.

任何帮助表示赞赏。

澄清工作 4-slider 版本:

Publishers
    .CombineLatest4($slider1, $slider2, $slider3, $slider4)
    .debounce(for: 0.3, scheduler: DispatchQueue.main)
    .subscribe(subscriber)
Run Code Online (Sandbox Code Playgroud)

好的,弄清楚语法,@Daniel-t 是对的。我只需要创建子发布商:

let paramsOne = Publishers
    .CombineLatest3($slider1, $slider2, $slider3)

let paramsTwo = Publishers
    .CombineLatest($slider4, $slider5)

paramsOne.combineLatest(paramsTwo)
    .debounce(for: 0.3, scheduler: DispatchQueue.main)
    .subscribe(subscriber)
Run Code Online (Sandbox Code Playgroud)

请注意,我还必须将订阅者期望的输入内容从 更改(Double, Double, Double, Double, Double)((Double, Double, Double), (Double, Double)),并且编译器给了我一个误导性和令人困惑的错误(关于调度程序),直到我发现输入类型是错误的。

swiftui combine

6
推荐指数
2
解决办法
1032
查看次数

标签 统计

combine ×1

swiftui ×1