我有一些自定義的UITableViewCell,並且會隨機使用它們中的一些。但是在我註冊之後,它會在tableView(_cellForRowAt:)
中墜毀。 這裏是我的代碼: 在viewDidLoad方法在tableView中使用多個自定義UITableViewCell(_cellForRowAt :)
tableView.register(CustomACell.self, forCellReuseIdentifier: "Identifier")
tableView.register(CustomACell.self, forCellReuseIdentifier: "Identifier")
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let model = dataSource[indexPath.row]
if let type = model.type {
switch type {
case .A:
let cell = tableView.dequeueReusableCell(withIdentifier: MyIdentifier) as! CustomACell
cell.assgin(message: model)
return cell
case .B:
let cell = tableView.dequeueReusableCell(withIdentifier: MyIdentifier) as! CustomBCell
cell.assgin(message: model)
return cell
}
}
let cell = tableView.dequeueReusableCell(withIdentifier: MyIdentifier) as! CustomACell
cell.assgin(message: model)
return cell
}
如果我註冊這兩個,它會在情況.A墜毀。如果我不願意,其中一些會在tableView.dequeueReusableCell
處崩潰。 這裏是控制檯錯誤信息之一:
無法投類型的值 'TM.CustomACell'(0x10bb40940)爲 'TM.CustomBCell'(0x10bb40578)。
難道你有所有customCell故事板? – Surjeet
在SB @Surjeet –
中有沒有單元格的tableview,以及您是如何創建CustomACCell,CustomBCell等的。他們有單獨的xib文件或編程方式。 – Surjeet