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
обычное начальное значение, как для обычной переменной