Swift TableView 没有 return numbersOfRow

Swift TableView doesn't return numbersOfRow

import UIKit
import SwiftyJSON

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{        
    @IBOutlet weak var tableView: UITableView!    
    var mass = [String]()
    var jDatas = datas()    
    override func viewDidLoad() {
        super.viewDidLoad()        
        let url = URL(string: "https://www.quandl.com/api/v3/datasets/WIKI/AAPL.json")
        let task = URLSession.shared.dataTask(with: url!) {(data, response, error) in
            if error != nil {
                print("error")
            } else {
                if let content = data {
                    let myJson = JSON(data: content)                    
                    for item in myJson["dataset"]["data"] {                        
                        let dates = "open \(String(describing: item.1[1].string)))"                 
                        self.mass.append(dates)                      
                    }       
                }
            }
        }
        task.resume()
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return mass.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SimpleTableViewCell
        cell.datasLabel?.text = "some text"
        return cell
    }
}

所以我的问题是 numberOfRowInSection 不起作用,我尝试了所有方法,有人可以说出问题所在吗?

当我尝试调试代码时,它说我的 massive

中有 0

您忘记在 dataTask 的闭包中的 for 循环后重新加载 tableView,因此只需在主线程上重新加载 tableView

for item in myJson["dataset"]["data"] {                        
   let dates = "open \(String(describing: item.1[1].string)))"                 
   self.mass.append(dates)                      
}
DispatchQueue.main.async {
    self.tableView.reloadData()
}