无法在 amplify.api.query 函数内重新加载表视图
Cannot reload tableview within the amplify.api.query function
我正在使用 Amplify 将数据加载到我的应用程序。当我加载分页列表时,我将存储列表中的元素附加到我的数据模型数组中。但是,由于元素的加载需要一些时间,我要么必须在完成处理程序中的 amplify.api.query
函数末尾调用 tableView.reloadData()
,要么在我调用之后直接调用 tableView.reloadData()
events.append()
在 amplify.api.query
函数中。但是,amplify.api.query
既没有完成处理程序,也不允许我将 tableView.reloadData()
放入函数本身,因为每次我尝试 运行 应用程序时,都会弹出一个错误提示“UITableView.reloadData() 只能在主线程中使用。”我希望 tableview 在 UIViewController
启动时加载。我应该怎么做?
func listFirstPage(finished: () -> Void) {
Amplify.API.query(request: .paginatedList(Items.self, where: nil, limit: 1000)) { item in
switch item {
case .success(let result):
switch result {
case .success(let items):
self.currentPage = items
self.events.append(contentsOf: items)
print(self.items)
self.AddItemTableView.reloadData()
case .failure(let error):
print("Got failed result with \(error.errorDescription)")
}
case .failure(let error):
print("Got failed event with error \(error)")
}
}
}
做
DispatchQueue.main.async {
self.AddItemTableView.reloadData()
}
我正在使用 Amplify 将数据加载到我的应用程序。当我加载分页列表时,我将存储列表中的元素附加到我的数据模型数组中。但是,由于元素的加载需要一些时间,我要么必须在完成处理程序中的 amplify.api.query
函数末尾调用 tableView.reloadData()
,要么在我调用之后直接调用 tableView.reloadData()
events.append()
在 amplify.api.query
函数中。但是,amplify.api.query
既没有完成处理程序,也不允许我将 tableView.reloadData()
放入函数本身,因为每次我尝试 运行 应用程序时,都会弹出一个错误提示“UITableView.reloadData() 只能在主线程中使用。”我希望 tableview 在 UIViewController
启动时加载。我应该怎么做?
func listFirstPage(finished: () -> Void) {
Amplify.API.query(request: .paginatedList(Items.self, where: nil, limit: 1000)) { item in
switch item {
case .success(let result):
switch result {
case .success(let items):
self.currentPage = items
self.events.append(contentsOf: items)
print(self.items)
self.AddItemTableView.reloadData()
case .failure(let error):
print("Got failed result with \(error.errorDescription)")
}
case .failure(let error):
print("Got failed event with error \(error)")
}
}
}
做
DispatchQueue.main.async {
self.AddItemTableView.reloadData()
}