从在viewDidLoad

时间:2018-12-15 03:52:56

标签: ios swift uitableview reloaddata

我正在使用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?

2 个答案:

答案 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()
}

发布此信息后,请检查您的numberOfSectionsnumberOfRowsInSection的dataSource方法是否得到正确处理