在范围内找不到 'CombineLatest'
Cannot find 'CombineLatest' in scope
我正在关注 WWDC 2019 'Combine in Practice' 视频,但出现以下错误
Cannot find 'CombineLatest' in scope
我是在 Xcode 12
建造的操场上做的
import SwiftUI
import Combine
class Stuff {
@Published var password: String = ""
@Published var passwordAgain: String = ""
var validatedPassword: AnyPublisher<String?, Never> {
// wtf? "Cannot find 'CombineLatest' in scope"
return CombineLatest($password, $passwordAgain) { password, passwordAgain in
guard password == passwordAgain, password.count > 8 else { return nil }
return password
}
.map { [=12=] == "password1" ? nil : [=12=] }
.eraseToAnyPublisher()
}
}
自 2019 年以来 API 有变化吗?因为好像
CombineLatest($password, $passwordAgain) -> $password.combineLatest($passwordAgain)
这是真的吗?任何人都可以找到任何正式文件来说明它是否属实以及为什么?
它嵌套在 enum Publishers
下,因此您可以这样访问它:
Publishers.CombineLatest($password, $passwordAgain)
或者,您可以将其用作运算符,这可以说是更常见的方式:
$password.combineLatest($passwordAgain)
我正在关注 WWDC 2019 'Combine in Practice' 视频,但出现以下错误
Cannot find 'CombineLatest' in scope
我是在 Xcode 12
建造的操场上做的import SwiftUI
import Combine
class Stuff {
@Published var password: String = ""
@Published var passwordAgain: String = ""
var validatedPassword: AnyPublisher<String?, Never> {
// wtf? "Cannot find 'CombineLatest' in scope"
return CombineLatest($password, $passwordAgain) { password, passwordAgain in
guard password == passwordAgain, password.count > 8 else { return nil }
return password
}
.map { [=12=] == "password1" ? nil : [=12=] }
.eraseToAnyPublisher()
}
}
自 2019 年以来 API 有变化吗?因为好像
CombineLatest($password, $passwordAgain) -> $password.combineLatest($passwordAgain)
这是真的吗?任何人都可以找到任何正式文件来说明它是否属实以及为什么?
它嵌套在 enum Publishers
下,因此您可以这样访问它:
Publishers.CombineLatest($password, $passwordAgain)
或者,您可以将其用作运算符,这可以说是更常见的方式:
$password.combineLatest($passwordAgain)