0

刚刚继承了这个代码库,我对RxSwift不太熟悉。我已经阅读了一些内容,但找不到解决问题的方法。

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

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

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

4

2 回答 2

0

试试这个:

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

PS:确保 Photo 符合 Hashable

于 2020-03-24T09:29:18.400 回答
0

您可以使用RxSwiftExtdistinct运算符来消除任何 observable 中的重复。事实上,它是一个很好的库,适用于不同的扩展。通过 Cocoa Pods 或 Carthage 安装它。

var filteredPhotos = allPhotos.asObservable().distinct().toArray()
于 2020-03-24T10:16:31.067 回答