我被这个问题困扰并尝试了各种方法但没有成功。下面的代码几天前就可以工作。但是,它现在不起作用。我尝试使用 Xcode 11.1 版本,效果非常好。有人可以告诉我原因或解决方法吗?
问题是每当我输入一个键时,它不会使用调度队列触发相应的方法。
当前 Swift 版本:11.3
Code snippet:
init(
weatherFetcher: WeatherFetchable,
scheduler: DispatchQueue = DispatchQueue(label: "WeatherViewModel")
) {
self.weatherFetcher = weatherFetcher
_ = $city
.dropFirst(1)
.debounce(for: .seconds(0.5), scheduler: DispatchQueue.global())
.sink(receiveValue: fetchWeather(forCity:))
}
引用代码: https://www.raywenderlich.com/4161005-mvvm-with-combine-tutorial-for-ios
最佳答案
那个教程有一个问题,就是链$city.…
创建的订阅者没有保存在任何地方,因此它会立即被取消并释放。将其保存在属性中或将其添加到 Set<AnyCancellable>
属性(property)使用 .store(in: &mySubscribers)
.
关于ios - DispatchQueue 在 Swift 中不起作用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59442379/