【发布时间】:2021-02-04 21:07:55
【问题描述】:
我有一个 API,它接受一个名为 "take" 的参数。在 viewDidLoad 中,我传递了 10 个数据,我得到了 10 个数据并将它们附加到我的对象数组中。我使用scrollViewDidEndDragging 方法进行分页,如下所示。我将 takeCount 增加 10 并再次调用我的 API 并将它们附加到我现有的数组中。问题是1。对象和11。当我滚动到底部时,对象是相同的。我应该删除旧数据,但这不违反分页逻辑吗?
分页代码
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if scrollView.contentOffset.y > scrollView.contentSize.height - scrollView.frame.size.height{
self.takeCount += 10
if self.takeCount <= self.sampleDataCountLimit{
Service().fetchData(count: self.takeCount) { (result) in
switch result{
case .success(let cars):
//self.carModel.removeAll(keepingCapacity: false)
self.carModel.append(contentsOf: cars)
DispatchQueue.main.async {
self.tableView.reloadData()
print(self.carModel.count)
print(self.carModel)
}
case .failure(let error):
print(error.localizedDescription)
}
}
}
}
}
【问题讨论】:
-
您的 API 是否返回完全不同的对象,其中 take=10 和 take=20?会不会分别返回前 10 个和前 20 个对象,这样前 10 个是前 20 个的子集?
-
@VadimBelyaev 例如,我发送了 10,然后输入 20,第十个之后出现不同的值。此外,当我打印 self.carModel.count 时,它返回 30。(这里是 API url :sandbox.arabamd.com/api/v1/…)
标签: swift xcode uitableview