Swift Combine:没有“distinct”运算符?
Posted
技术标签:
【中文标题】Swift Combine:没有“distinct”运算符?【英文标题】:Swift Combine: no `distinct` operator? 【发布时间】:2019-09-02 17:22:56 【问题描述】:似乎Combine(Xcode 11 beta 7 附带)缺少distinct
运算符?
谁能帮我建一个? :)
【问题讨论】:
【参考方案1】:我真傻,有一个,叫RemoveDuplicates
和link to method removeDuplicates()
【讨论】:
【参考方案2】:.removeDuplicates() 等价于 .distinctUntilChanged()
您可以执行以下操作来获取 .distinct()。
@available(OSX 10.15, ios 13.0, tvOS 13.0, watchOS 6.0, *)
extension Publisher where Self.Output : Equatable
public func distinct() -> AnyPublisher<Self.Output, Self.Failure>
self.scan(([], nil))
$0.0.contains($1) ? ($0.0, nil) : ($0.0 + [$1], $1)
.compactMap $0.1
.eraseToAnyPublisher()
【讨论】:
以上是关于Swift Combine:没有“distinct”运算符?的主要内容,如果未能解决你的问题,请参考以下文章
Swift - JSONDecoder & Combine 框架问题
如何使用 Combine + Swift 复制 PromiseKit 风格的链式异步流
使用 Swift 和 Combine 链接 + 压缩多个网络请求
Xcode 11 中 Swift Combine.framework 的可选链接