Что такое CurrentValueSubject в Swift Combine?

CurrentValueSubject – это тип Publisher в фреймворке Combine, который позволяет сразу же при подписке отправлять текущее значение, а затем продолжать отправлять новые значения в течение времени.

В отличие от других типов Publishers, которые требуют передачи начального значения при создании, CurrentValueSubject позволяет установить начальное значение при создании Publisher и затем отправлять новые значения с помощью метода send(_:) .

Вот пример того, как создать и использовать CurrentValueSubject:

import Combine

// Create a CurrentValueSubject that emits integers
let subject = CurrentValueSubject<Int, Never>(0)

// Subscribe to the subject and print any new values that are emitted
subject.sink { value in
    print("New value: (value)")
}

// Output: New value: 0

// Update the subject's value and see the subscriber receive the new value
subject.send(1)

// Output: New value: 1

В этом примере мы создаем CurrentValueSubject, который отправляет целые числа с начальным значением 0. Затем мы подписываемся на subject с помощью метода sink, который печатает любые новые значения, которые будут отправлены. Мы обновляем значение subject с помощью метода send и видим, как подписчик получает новое значение.

CurrentValueSubject – полезный тип Publisher для случаев, когда вам нужно отправить начальное значение и затем продолжать отправлять новые значения в течение времени, например, когда вам нужно представить текущее состояние элемента пользовательского интерфейса или общей модели данных.