我正在使用UITableViewController,需要在函数中重新加载表。当我运行应用程序时,表视图不会重新加载。我没有收到错误。
代码:
func loadTheaters() {
let api = ""
let theaterId = id
let date = date
let url = URL(string: "http://data.tmsapi.com/v1.1/theatres/\(theaterId)/showings?startDate=\(date)&api_key=\(api)")
print(url!)
let request = URLRequest(
url: url! as URL,
cachePolicy: URLRequest.CachePolicy.reloadIgnoringLocalCacheData,
timeoutInterval: 10 )
let session = URLSession (
configuration: URLSessionConfiguration.default,
delegate: nil,
delegateQueue: OperationQueue.main
)
let task = session.dataTask(with: request, completionHandler: { (dataOrNil, response, error) in
if let data = dataOrNil {
do { let filmList = try! JSONDecoder().decode([Films].self, from: data)
self.films = filmList
self.tableView.reloadData()
}
}
})
task.resume()
}
为什么不重新加载tableview?
答案 0 :(得分:1)
我的numberOfSections返回为0。
已解决:
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
答案 1 :(得分:0)
您应该在main queue
中重新加载tableView,
DispatchQueue.main.async {
self.tableView.reloadData()
}
发布此信息后,请检查您的numberOfSections
和numberOfRowsInSection
的dataSource方法是否得到正确处理