0

我正在编写一个从网站中提取数据并使用 SwiftUI 显示它的应用程序。

我的主视图有一个@ObservedObject类型DataStore(),它在视图中使用:

struct ContentView: View {
    @ObservedObject var store = DataStore()
    
    var body: some View {
        List(store.zones) { zone in
...

数据模型定义为:

class DataStore: ObservableObject {
    @Published var zones: [SonosZone] = []
        
    init() {
        getZones()
    }
    
    func getZones() {
        Api().getZones { (zones) in
            self.zones = zones
        }
    }
}

我想getZones()每 30 秒打一次电话。我该怎么做呢?

我猜我在某处使用了这样的代码,但我不知道把它放在哪里,或者如何在闭包中调用函数:

        _ = Timer.scheduledTimer(withTimeInterval: 30, repeats: true) { _ in
            getZones()
        }
4

1 回答 1

1

我想到了。

class DataStore: ObservableObject {
    @Published var zones: [SonosZone] = []
        
    init() {
        getZones()
        _ = Timer.scheduledTimer(withTimeInterval: 30, repeats: true) { _ in
            self.getZones()
        }
    }
    
    
    func getZones() {
        Api().getZones { (zones) in
            self.zones = zones
        }
    }
于 2020-06-28T09:40:28.843 回答