Я пытаюсь создать планировщик даты, чтобы наблюдать какое-то событие. Но это не работает. Я просмотрел
протокол DateScheduler
и сказано, что действие будет происходить при currentDate в некоторыхметоды протокол DateScheduler . Я пытаюсь сделать это через 10 сек. Ниже приведен пример моего пользовательского расписания.
class SomeDateScheduler : DateScheduler {
var currentDate: Date
init() {
self.currentDate = Date(timeIntervalSinceNow: 10)
}
func schedule(after date: Date, action: @escaping () -> Void) -> Disposable? {
print(#function)
print(date)
return nil
}
func schedule(after date: Date, interval: DispatchTimeInterval, leeway: DispatchTimeInterval, action: @escaping () -> Void) -> Disposable? {
print(#function)
print(date)
print(interval)
print(leeway)
return nil
}
func schedule(_ action: @escaping () -> Void) -> Disposable? {
print(#function)
return nil
}
}
и затем я создаю привязку для наблюдения за событием
private func testSchedular() {
let schedular = SomeDateScheduler()
reactive.makeBindingTarget { appDeleg, value in
print("SUCCESS")
print(value)
} <~ signalSchedular.observe(on: schedular)
DispatchQueue.main.async { [observerSchedular] in
observerSchedular.send(value: "Hello World")
observerSchedular.sendCompleted()
}
}
Я делаю это в AppDelegate . ObserverSchedular и signalSchedular являются глобальными свойствами. Пожалуйста, объясните мне, как вызывать все методы DateScheduler .