BehaviourRelay变量删除重复项

时间:2020-03-24 09:23:19

标签: ios swift rx-swift iglistkit

仅继承了此代码库,而我对 RxSwift 不太熟悉。我已经阅读了一些书,但是找不到解决我问题的方法。

我们声明了一个变量。这样可以保存网络呼叫中的信息,然后将其用于将信息加载到集合视图中。因此,收藏视图显示了多个相似的项目

var allPhotos = BehaviorRelay<[Photo]>.init(value: [])

如何将其转换为集合以删除重复项?

2 个答案:

答案 0 :(得分:0)

尝试一下:

let filteredPhotos = allPhotos.asObservable().map { Array(Set($0)) }

PS:确保照片符合Hashable

答案 1 :(得分:0)

您可以使用RxSwiftExtdistinct运算符消除任何可观察到的重复项。实际上,它是用于不同扩展的好库。通过可可豆荚或迦太基安装。

var filteredPhotos = allPhotos.asObservable().distinct().toArray()
相关问题