【发布时间】:2017-10-05 22:50:24
【问题描述】:
这个问题让我发疯了 3 天。我创建了一个自定义单元类:
class TransitoPalinaTableViewCell: UITableViewCell {
@IBOutlet weak var lblOrario: UILabel!
@IBOutlet weak var lblDestinazione: UILabel!
@IBOutlet weak var lblNote: UILabel!
@IBOutlet weak var lblBus: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
在我的视图控制器中我有这个:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TransitoPalinaTableViewCell
// Configure the cell...
let hour = Int(self.transito.listaCorse[indexPath.row].tempoTransito) / 3600
let mins = Int(self.transito.listaCorse[indexPath.row].tempoTransito % 3600) / 60
cell.lblOrario?.text = String(format: "%02d:%02d", hour, mins)
cell.lblDestinazione?.text = self.transito.listaCorse[indexPath.row].arrivoCorsa
cell.lblNote?.text = ""
cell.lblBus?.text = self.transito.listaCorse[indexPath.row].automezzo
cell.backgroundColor = UIColor.init(red: 0, green: 60/255, blue: 113/255, alpha: 1)
return cell
}
在情节提要中,我设置了表格视图单元格标识符:“Cell”和自定义类“TransitoPalinaTableViewCell”。
问题是当调用 cellForRowAt 时出现错误
由于未捕获的异常而终止应用程序 'NSInternalInconsistencyException',原因:'无法使单元格出列 带有标识符 Cell - 必须为 标识符或连接故事板中的原型单元'
在 dequeueReusableCell 命令的行。
正如我在其他帖子中所读到的那样,我没有把这条线
self.tableView.register(TransitoPalinaTableViewCell.self, forCellReuseIdentifier: "Cell") 在 viewdidLoad() - 它会创建一个全新的单元模型,不与故事板中的插座连接。
我尝试再次创建 TransitoPalinaTableViewCell 类及其插座,但没有任何改变。
任何帮助表示赞赏。
【问题讨论】:
-
可能显然是的,但只是为了排除原因......在您的故事板中,您是否将您的单元格设计为表格视图中的原型单元格?
-
@DonMag 是的,我做到了。在我的故事板中,我将对象放在单元格中,并在表格中设置了 1 个动态原型单元格。
-
@cicaletto79 - 再次,只是为了排除可能的原因......您将“单元格”(无引号,区分大小写)放在属性检查器下的标识符字段中,如下所示:imgur.com/A0LjMjz
-
@cicaletto79 你在故事板中给出了正确的类名和单元格标识符吗??
标签: ios swift identifier tablecell