BehaviourRelay变量删除重复项



刚刚继承了这个代码库,我对RxSwift不太熟悉。我读了一些书,但找不到解决问题的办法。

我们已经声明了一个变量。这将保存网络调用中的信息,然后用于将信息加载到集合视图中。因此,集合视图显示了多个类似的项目

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

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

您可以使用RxSwiftExt的distinct运算符来消除任何可观察到的重复。事实上,对于不同的扩展来说,它是一个很好的库。通过Cocoa Pods或Carthage安装。

var filteredPhotos = allPhotos.asObservable().distinct().toArray()

试试这个:

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

PS:确保照片符合哈希

最新更新