如何将数据从模型Array中的Array填充到UITableView?

时间:2018-08-23 05:59:45

标签: ios swift uitableview

我有一个模型类的数组,这个模型类有一个array。我想从array填充tableview。它显示我错误

这是我的Model课

class DataModel {

    var name:[String]

    init(name:[String]) {
        self.name = name
    }
} 

这是我的模型对象:

class Data {
    static var product = [DataModel]()
}

这是我将数据追加到对象的功能:

class Function {

    static func read(compleationHandler:@escaping ()->()) {

        var model = ["nsu","iUB","UIU"]
        DispatchQueue.global(qos: .userInteractive).async {
            if Data.product.count == 0 {
                Data.product.append(DataModel(name: model))
            }
            DispatchQueue.main.async {
                compleationHandler()
            }
        }
    }
}

这是我的tableView Cell方法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = myTableView.dequeueReusableCell(withIdentifier: "myCell") as! myCell

        cell.textLabel?.text = Data.product[indexPath.row].name[indexPath.count]

        return cell
    }

这是我的ViewDidLoad:

myTableView.delegate = self
        myTableView.dataSource = self
        Function.read { [weak self] in
            print(Data.product.count)
            self?.myTableView.reloadData()
        }

    }

1 个答案:

答案 0 :(得分:2)

问题可能出在您的代表的设置方式上。我觉得这就是您要实现的目标。

func numberOfSections(in tableView: UITableView) -> Int {
    return Data.product.count
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return Data.product[section].name.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
   let cell = myTableView.dequeueReusableCell(withIdentifier: "myCell") as! myCell

    cell.textLabel?.text = Data.product[indexPath.section].name[indexPath.row]

    return cell
}