Переменная BehaviourRelay удаляет дубликаты - PullRequest
0 голосов
/ 24 марта 2020

Просто унаследовал эту кодовую базу, и я не совсем знаком с RxSwift . Я немного читал, но не могу найти решение своей проблемы.

У нас есть объявленная переменная. Это сохраняет информацию из сетевого вызова, а затем используется для загрузки информации в представление коллекции. Поэтому в представлении коллекции отображаются несколько похожих элементов

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

Как преобразовать его в набор для удаления дубликатов?

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Вы можете использовать оператор RxSwiftExt distinct, чтобы исключить дублирование в любой наблюдаемой. Infact, это хорошая библиотека для различных расширений. Установите его через Какао Бобы или Карфаген.

var filteredPhotos = allPhotos.asObservable().distinct().toArray()
0 голосов
/ 24 марта 2020

Попробуйте:

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

PS: убедитесь, что фотография соответствует Hashable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...