EmailPublished

@propertyWrapper
public class EmailPublished

Издатель, который можно использовать для обычного доступа к реактивной строке e-mail или использовать projectedValue для того, чтобы проверить email на валидность

class UserViewModel: ObservableObject {
 // Объявляем email
@EmailPublished var email = ""

 // Пример фукнции для валидации
func validateEmail() {
  $email
   .receive(on: RunLoop.main)
   .sink(receiveValue: { [weak self] isValid in
                 ...........
   })
   .store(in: &cancellableSet)
 }
}
 // Пример использования просто как строку
userViewModel.email
 // ---> Вернет обычную строку, например "test@mail.ru"
  • Значение, которое служит для постоянного обновления значения

    Declaration

    Swift

    public var wrappedValue: String { get set }
  • Значение, которое можно использовать, как издателя и подписываться на него

    Declaration

    Swift

    public var projectedValue: AnyPublisher<Bool, Never> { get }
  • Инициализация

    Declaration

    Swift

    public init(wrappedValue initialValue: String)

    Parameters

    initialValue

    обычное начальное значение, как для обычной переменной