我有一个模型类的数组,这个模型类有一个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()
}
}
答案 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
}