BehaviourRelay 变量删除重复项
BehaviourRelay variable remove duplicates
刚继承了这个代码库,对RxSwift不是很熟悉。我读了一些书,但找不到解决我的问题的方法。
我们声明了一个变量。这会保存来自网络调用的信息,然后用于将信息加载到集合视图中。因此,集合视图显示了多个相似的项目
var allPhotos = BehaviorRelay<[Photo]>.init(value: [])
如何将其转换为集合以删除重复项?
试试这个:
let filteredPhotos = allPhotos.asObservable().map { Array(Set([=10=])) }
PS: 确保 Photo 符合 Hashable
您可以使用 RxSwiftExt 的 distinct
运算符来消除任何可观察对象中的重复。事实上,它是一个很好的用于不同扩展的库。通过 Cocoa Pods 或 Carthage 安装。
var filteredPhotos = allPhotos.asObservable().distinct().toArray()
刚继承了这个代码库,对RxSwift不是很熟悉。我读了一些书,但找不到解决我的问题的方法。
我们声明了一个变量。这会保存来自网络调用的信息,然后用于将信息加载到集合视图中。因此,集合视图显示了多个相似的项目
var allPhotos = BehaviorRelay<[Photo]>.init(value: [])
如何将其转换为集合以删除重复项?
试试这个:
let filteredPhotos = allPhotos.asObservable().map { Array(Set([=10=])) }
PS: 确保 Photo 符合 Hashable
您可以使用 RxSwiftExt 的 distinct
运算符来消除任何可观察对象中的重复。事实上,它是一个很好的用于不同扩展的库。通过 Cocoa Pods 或 Carthage 安装。
var filteredPhotos = allPhotos.asObservable().distinct().toArray()