swift - 在范围内找不到“CombineLatest”
问题描述
我正在关注 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 { $0 == "password1" ? nil : $0 }
.eraseToAnyPublisher()
}
}
自 2019 年以来 API 是否发生了变化?因为看起来
CombineLatest($password, $passwordAgain) -> $password.combineLatest($passwordAgain)
这是真的?任何人都可以找到任何关于它是否属实以及为什么的正式文件吗?
解决方案
它嵌套在 下enum Publishers
,因此您可以像这样访问它:
Publishers.CombineLatest($password, $passwordAgain)
或者,您可以将其用作运算符,这可以说是一种更常见的方式:
$password.combineLatest($passwordAgain)
推荐阅读
- python - Python Django End_of_file
- c++ - 在 C++ 中转换为另一个类
- javascript - Rails 6 和 Vue 组件
- powershell - 打开 PowerShell 的 CMD 命令不起作用
- ios - 无法使用 ResearchKit 归档项目,但可以在模拟器和设备上成功运行
- delphi - 如何在 Delphi 中即时更改 TOpenDialog 的 UI 语言?
- javascript - 在 React 中通过 handleClick 切换显示的 div
- python - 为什么我的 Keras 预测对于一个图像类总是接近 100%?
- flutter - 新来的扑腾。如何在颤动中对容器应用字数限制?
- python - 在熊猫数据框中查找丢失的时间戳