Вы столкнулись с некоторой (распространенной) ошибкой, что Combine отвечает за передачу измененных данных в SwiftUI. Это не так. Единственное, что здесь делает Combine, - это сообщение без содержимого, что некоторые данные изменились, а затем компоненты SwiftUI, которые используют соответствующий объект модели go и ищут свои данные.
Передача данных в SwiftUI полностью использует Binding, которые по сути являются get
и set
замыканиями под крышками.
Так что вам не нужно беспокоиться о демультиплексировании объединенного потока - и нет такого, в котором есть «один» из этих видов данных. Комбинат будет иметь проблемы с этим, так как он строго типизирован как для типа вывода, так и типа сбоя.
Об этом немного больше написано в Использование Combine в главе SwiftUI и Combine (ссылка на бесплатную версию HTML)