TableView reloadData()不适用于Swift4中的Closure Block

时间:2018-04-26 17:38:01

标签: ios swift xcode uitableview reloaddata

我有一个函数从Web服务,我的func下载数据和数据库中获取数据,当我调用self.tableView.reloadData()时,我从数据库和刷新列表中获取对象,但方法reloadData()没有打电话。

我也试过电话:self.tableViewItens.performSelector(onMainThread: #selector(UICollectionView.reloadData), with: nil, waitUntilDone: true) 另外,我尝试将self.tableViewItens.reloadData()放在完成关闭之外,也不行。

UITabBarButton的行动:

@objc func refreshButton() {

    Sync.syncData(tabela: "my_table", successBlock: { (n) in
        print("Refreshed: \(n)")
        DispatchQueue.main.async {
                 self.tableViewItens.reloadData()                
        }
    }) { (err) in
        print(err)                
    }   
}

未调用的方法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 print("cellForRowAt")
 return UITableViewCell()

}

  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return listaDados.count
    }

viewDidLoad中

override func viewDidLoad() {
    self.alerta = Alerta()

    self.rightButton = UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(refreshButton))
    self.navigationItem.rightBarButtonItem = self.rightButton
    self.title = titlePage!
    self.tableViewItens.delegate = self
    self.tableViewItens.dataSource = self

}

我没有放Sync.syncData()的代码,因为这样做有效,只有不起作用的是表视图的reloadData()

0 个答案:

没有答案