我正在尝试构建一个相当直接的数据表,并遵循本教程: http://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift
我有以下自定义单元格类:
import Foundation
import UIKit
class WorkItemCell: UITableViewCell {
@IBOutlet var titleLabel: UILabel!
}
以及我的TableClass中的以下函数:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("WorkItemCell") as! WorkItemCell
cell.textLabel?.text = self.work[indexPath.row]["name"] as! String
return cell
}
这导致:
Could not cast value of type 'UITableViewCell' (0x10c111c68) to 'proj.WorkItemCell' (0x10a84c4c0).
为什么呢?我该如何解决?
答案 0 :(得分:4)
最终,我意识到问题在于我在UITableViewCell.self
中使用tableView.registerClass
,将其更改为WorkItemCell.self
解决了问题
答案 1 :(得分:1)
请确保您的自定义类的标识符是WorkItemCell,还需要在viewdidload中注册nib,如
var nib = UINib(nibName: "WorkItemCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "WorkItemCell")
和你的单元格代码一样。
var cell:WorkItemCell= self.tableView.dequeueReusableCellWithIdentifier("WorkItemCell") as! WorkItemCell