При обновлении снимка коллекции я столкнулся с проблемой гонки. Некоторые изображения пропущены или перезаписаны со следующей ошибкой.
2020-04-01 19: 05: 34.076250 + 0530 Загрузка изображения - XEP0363 [17022: 1058871] [UIDiffableDataSource] Предупреждение: 10 вставленных идентификаторов уже присутствует; существующие элементы будут перемещены на место для этой текущей вставки. Обратите внимание, что это повлияет на производительность, если элементы не являются уникальными при вставке. 2020-04-01 19: 05: 34.077237 + 0530 Загрузка изображения - XEP0363 [17022: 1058871] [UIDiffableDataSource] Предупреждение: 10 вставленных идентификаторов уже присутствуют; существующие элементы будут перемещены на место для этой текущей вставки. Обратите внимание, что это повлияет на производительность, если элементы не являются уникальными при вставке.
struct Photo {
let id: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func ==(lhs: Photo, rhs: Photo) -> Bool {
return lhs.id == rhs.id
}
}
NetworkService.shared.fetchImages(category1)
.receive(on: DispatchQueue.main)
.sink(receiveValue: { [weak self] images in // images: [Photo]
guard let self = self else { return }
var currentSnapshot = self.dataSource.snapshot()
currentSnapshot.appendItems(images, toSection: category1)
self.dataSource.apply(currentSnapshot, animatingDifferences: true)
})
.store(in: &subscriptions)
NetworkService.shared.fetchImages(category2)
.receive(on: DispatchQueue.main)
.sink(receiveValue: { [weak self] images in // images: [Photo]
guard let self = self else { return }
var currentSnapshot = self.dataSource.snapshot()
currentSnapshot.appendItems(images, toSection: category2)
self.dataSource.apply(currentSnapshot, animatingDifferences: true)
})
.store(in: &subscriptions)