我有以下代码来处理下拉刷新响应
let copyData = data.reversed() // it is pull to refresh response (load page 1)
for (_,element) in copyData.enumerated() {
let foundElement = allObjects.filter{$0.id == element.id} // Find element in main array
if let firstElement = foundElement.first, let index = allObjects.index(of: firstElement) {
allObjects[index] = element // Replace if found
} else {
allObjects.insert(element, at: 0) // Insert if not found
}
}
self.arrayPosts = allObjects
其中
data
是可编码类,它是拉动刷新的 API 响应。 allObjects
是带分页的预加载数据问题 :假设在
allObjects
中我有 50 个对象(10 个 ID 的 5 页是(1 到 50))用户拉动刷新我从 API 加载第一个页面(ID 1,2,3,4,5,6,7,10,11)然后如何识别哪个对象被删除 (8,9) ?
我应该将
allObjects
的第 10 个索引与 data
的第 10 个索引对象的 ID 进行比较吗?这是处理这个问题的更好方法吗?请建议
最佳答案
不要比较页面(即一次 10 个项目) - 如果添加/删除一个项目,页面将不同步,最终会丢失/重复对象。
大概你的对象是按一些键/日期等排序的。
关于ios - 如何识别从集合(数组)中删除的对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52362870/