Хотя походу оно решит эту проблему
Combine тебе обеспечит крутую pipeline, инструмент очень гибкий. Там можно конвертировать с помощью операторов один тип Publishers в другой. Есть на эту тему видео WWDC, но придётся разбираться. Я сам использовал только debounce для того, чтобы в процессе набора текста в поле поиска не фетчились данные, пока пользователь не остановится печатать. Также пришлось надстройку писать на NSFetchResultController, так как из коробки тот, что реализуется с помощью property wrapper работает коряво. Если Combine некогда изучать - почитай про Published, ObservableObject и ObservedObject. В принципе то, что у тебя есть - переделать можно быстро.