Вы хотите что-то, что преобразует Publisher в одно значение, а затем завершается, и операторы последовательности в Combine - это то, что вы хотите использовать для такого рода вещей.
Combine настроен для работы с одно ИЛИ много значений. Таким образом, вы, как потребитель, должны дать ему какой-то способ ограничить потенциально много значений одним значением, если вы хотите использовать assign
подписчик для установки значения (или sink
подписчик для вызова замыкания, где вы сохраните, в вашем случае).
Операторы последовательности в Combine - это то, где я бы хотел посмотреть, но я не могу действительно описать , который , не зная, сколько значений и как бы вы выбрали, какой из них применить. Два «простых» варианта: first
или last
, но существует множество операторов последовательности, которые позволяют создавать более сложные варианты (включая firstWhere
и lastWhere
, которые позволяют определять на основе вашего собственного закрытия, что может быть чертовски удобно.
Все встроенные ссылки относятся к онлайн / бесплатной версии Использование Combine (раскрытие: которое я написал) - и хотя у меня нет каких-либо явных примеров об операторах последовательности, я все же выложил sh справочные сведения для них в книге.
Если вы явно не работаете с издателем, вам может оказаться проще использовать библиотеку Promise - в зависимости от того, что вызывает ваше сохранение. Я не знаю, как закончится область Realm, чтобы знать, на чем сфокусирован их API, и если вы сделали издателя, который генерирует данные, или если они исходят из их API - и, следовательно, вы хотите использовать Combine для решения этой проблемы.