当我尝试打开表格视图时,我在控制台中收到此错误:
“无法将'UITableViewCell'类型的值转换为 'AppName.NameTableViewCell'。“
值得注意的几点:
以下是一些澄清的截图。
let tableView = UITableView()
override func viewDidLoad() {
tableView.register(NameTableViewCell.self, forCellReuseIdentifier: "cellName")
...
}
...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell = UITableViewCell(style: .default, reuseIdentifier: "cellName") as! NameTableViewCell
cell.textCell.text = self.menuText[indexPath.row]
return cell
}
}
答案 0 :(得分:0)
您'重新尝试将UITableViewCell
转换为NameTableViewCell
func tableView(_ tableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if(indexPath.row == 0)
{
let cell = tableView.dequeueReusableCell(withIdentifier:"cellName1") as! NameTableViewCell1
return cell
}
else
if(indexPath.row == 1)
{
let cell = tableView.dequeueReusableCell(withIdentifier:"cellName2") as! NameTableViewCell2
return cell
}
}
答案 1 :(得分:0)
我已经通过检查目标部分中的单元格类解决了此问题。它被错过了。
答案 2 :(得分:-1)
您需要更改代码,以便您注册的单元格类实际上正在cellForRow
方法中使用。试试这个:
func viewDidLoad() {
tableView.register(NameTableViewCell.self, forCellReuseIdentifier: "cellName")
tableView.register(OtherTableViewCell.self, forCellReuseIdentifier: "otherName")
tableView.register(ThirdTableViewCell.self, forCellReuseIdentifier: "thirdName")
}
func tableView(_ tableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellName", for: indexPath) as! NameTableViewCell
// your cell setup code here
return cell
} else if indexPath.row == 1 {
let cell = tableView.dequeueReusableCell(withIdentifier: "otherName", for: indexPath) as! OtherTableViewCell
return cell
} else if indexPath.row == 2 {
let cell = tableView.dequeueReusableCell(withIdentifier: "thirdName", for: indexPath) as! ThirdTableViewCell
return cell
}
}