我浏览了 WWDC 的“Combine 简介”视频,其中提到每当发布者值更新时,CombineLatest 就会被调用并更新。但我创建的片段工作起来很奇怪。
class Mango {
var enableButton = false
@Published var userName = "admin"
@Published var password = "poweruser"
@Published var passwordAgain = "poweruser"
var validatePassword: AnyCancellable {
Publishers.CombineLatest($password, $passwordAgain).map { (password, reenterpass) -> String? in
print("Is Password Same to \(password)? :", password == reenterpass)
guard password == reenterpass else { return nil }
return password
}.eraseToAnyPublisher()
.map { (str) -> Bool in
print("In Map", str != nil)
guard str != nil else { return false } …
Run Code Online (Sandbox Code Playgroud)