Я реализовал класс ниже:
class Table : Hashable {
var uid : Int
var timeRemaining : Int?
var currentPrice : Double?
var hashValue: Int {
return uid.hashValue
}
static func ==(lhs: Table, rhs: Table) -> Bool {
return lhs.uid == rhs.uid && lhs.timeRemaining == rhs.timeRemaining && lhs.currentPrice == rhs.currentPrice
}
init (uid: Int, timeRemaining: Int?, currentPrice: Double?) {
self.uid = uid
self.timeRemaining = timeRemaining
self.currentPrice = currentPrice
}
}
Я также определил массив объектов этого класса:
private var tables = [Table]()
Далее у меня есть следующий метод, который запускает каждыйсекунда:
func updateAuctions() {
let oldItems = tables
let newItems = oldItems
for table in newItems {
let oldPrice = table.currentPrice!
let timeRemaining = table.timeRemaining!
table.currentPrice = oldPrice + 0.50
table.timeRemaining = timeRemaining - 1
}
let changes = diff(old: oldItems, new: newItems)
collectionView.reload(changes: changes, section: 0) { (complete) in
if (complete) {
self.tables = newItems
}
}
}
Здесь используется описанная здесь среда DeepDiff: https://github.com/onmyway133/DeepDiff
Моя цель - обновить UICollectionView
с изменениями, внесенными в массив tables
, однако нетизменения обнаруживаются платформой, хотя мой метод ==
проверяет, совпадают ли timeRemaining
и currentPrice
.