Я реализую текстовое поле поиска, используя ReactiveCocoa 4, и хочу использовать API поиска только после того, как текст не был введен в течение X времени. Я сделал это ранее, отменив ранее запланированное и активировав селектор «executeSearch» в методе делегата textDidChange. Это гарантирует, что каждый раз, когда я печатаю, любой ранее запланированный селектор «executeSearch» отменяется, а новый запускается через X секунд.
Теперь я хочу сделать то же самое, но от производителя сигнала, привязанного к моему входному тексту. Моя текущая реализация близка, но не то же самое. Это поведение просто ограничивает событие ввода текста, чтобы оно срабатывало каждые 0,5 секунды, вместо отмены предыдущего события.
searchTextInput.producer.delay(0.3, onScheduler: RACScheduler.currentScheduler())
.throttle(0.5, onScheduler: RACScheduler.currentScheduler())
.producer.startWithNext({ [unowned self] searchText in
self.executeSearch(searchText)
})
Мне трудно просматривать документацию ReactiveCocoa 4, чтобы узнать, какие сигнальные функции я должен использовать! Благодарю вас!