问题,
与我在下面所做的相比,有没有人有更整洁的解决方案?
设置,
我需要从后端下载加载数据,并按照从后端确定的特定顺序将其放入tableView
。
问题,
我从后端获取了列表顺序,但由于我附加到array
,因此订单混乱了。当我尝试添加到特定的index
时,我会得到index out of range
(当然)因为如果下载的第一个项目是index
6,那么它将超出范围。
我的解决方案,
这是我的解决方案,但我有兴趣看到有人可以改进这个或看到另一种方法来完成同样的事情,
if self.array.count >= indexNumberFromBackend {
self.array.insert(data, at: indexNumberFromBackend)
} else {
if indexNumber > self.array.count {
if self.array.count <= indexNumberFromBackend {
self.array.append(data)
} else {
self.array.insert(data, at: indexNumberFromBackend)
}
}
}
答案 0 :(得分:1)
您可以考虑将数据放入字典中,然后生成排序数组。或者,您可以将后端索引与数据一起存储,以便稍后对数组进行排序。
答案 1 :(得分:1)
你不能对数组进行排序吗?
答案 2 :(得分:1)
在Andy和Conrad的帮助下,我的代码变成了这个,
self.myArray.append(data)
self.myArray.sort(by: { $0.cellOrder > $1.cellOrder })