swift - 无法分配“GenericTableViewController”类型的值' 输入 'GenericTableViewController, _>'
问题描述
我有我的通用表格视图控制器
class GenericTableViewController<T: GenericTableViewCell<U>, U>: UITableViewController {
// some stuff
}
和cellForRowAt indexPath
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as? GenericTableViewCell<U>
cell?.controller = self // Cannot assign value of type 'GenericTableViewController<T, U>' to type 'GenericTableViewController<GenericTableViewCell<_>, _>'
// some stuff
return cell ?? GenericTableViewCell<U>(style: .default, reuseIdentifier: nil)
}
在我的通用表格视图单元类中,我有一个controller
代表通用表格视图控制器本身的属性:
class GenericTableViewCell<U>: UITableViewCell {
var item: U?
var controller: GenericTableViewController<GenericTableViewCell<U>, U>
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
controller = GenericTableViewController()
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc func handleMarkAsFavorite() {
controller.favoriteCell(cell: self)
}
lazy var starButton: UIButton = {
let button = UIButton(type: .system)
button.setImage(#imageLiteral(resourceName: "fav_star"), for: .normal)
button.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
button.addTarget(self, action: #selector(handleMarkAsFavorite), for: .touchUpInside)
return button
}()
}
我想将我的表格视图单元格与表格视图控制器链接到最喜欢的单元格,然后将它们呈现在另一个控制器(又名收藏夹)中。但是,我收到错误消息,告诉我由于类型问题它无法将单元与其控制器连接
Cannot assign value of type 'GenericTableViewController<T, U>' to type 'GenericTableViewController<GenericTableViewCell<_>, _>'
我是通用新手,所以我很乐意提供任何帮助!
解决方案
您可以按以下方式进行投射self
,
cell?.controller = self as! GenericTableViewController<GenericTableViewCell<U>, U>
推荐阅读
- python - tox, pd.read_html 即使在 requirements.txt 中也找不到 lxml
- css - 如何更改 kasper 主题中的背景颜色?
- python - 加快 gzipped jsonlines 文件的解析
- r - 如何将table1包输出表保存为.doc格式?R
- python - 创建子集数据集:过滤器函数返回一个系列,但返回标量 bool
- excel - 在 Excel 中从数组公式结果中检索范围而不是字符串
- mysql - MySQL 中存储过程的 SELECT ... INTO OUTFILE 语句
- html - 如何在跨度中换行
- python - 将 Numpy 数组转换为列表会打印出额外的零?Python
- android - 如何使用而不是使用的 xml 以编程方式创建波纹?