let cellIdentifier = "ChampionThumbnailCell"
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as? ChampionThumbnailTableViewCell
if cell == nil {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellIdentifier)
}
cell!.championNameLabel.text = championNames[indexPath.row]
cell!.championThumbnailImageView.image = UIImage(named: championThumbnail[indexPath.row])
return cell!
}
我想使用上面的代码重用UITableViewCell,但是在构建时我遇到了这个错误。
看起来像是:无法分配类型的值' UITableViewCell'键入' ChampionThumbnailTableViewCell?'
有没有解决办法可以修复它?
(顺便说一句,我不太擅长英语......)
答案 0 :(得分:2)
将您的方法更改为:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "ChampionThumbnailCell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! ChampionThumbnailTableViewCell
cell.championNameLabel.text = championNames[indexPath.row]
cell.championThumbnailImageView.image = UIImage(named: championThumbnail[indexPath.row])
return cell
}
请注意我在第三行使用!而不是?显示编译器,你不会对你的单元格为零感到困惑。
但如果事实证明您的单元格为零,则会导致运行时错误。
答案 1 :(得分:-1)
如果单元格== nil { 单元格= ChampionThumbnailTableViewCell(样式:UITableViewCellStyle.Default,reuseIdentifier:cellIdentifier) }
尝试这个!