嘿,我得到了ConfigurationType协议
protocol ConfigurationType {}
和我自己的细胞类
class ConfigurableCell<T: ConfigurationType>: UITableViewCell {
func configure(with config: T) {}
}
我的所有单元都继承自ConfigurableCell,我想创建我的tableView将使用的CellModules。
protocol CellModule {
associatedtype Config: ConfigurationType
associatedtype Cell: ConfigurableCell<Config>
var config: Config { get set }
}
extension CellModule {
init(_ config: Config) {
self.config = config
}
func dequeueCell(_ tableView: UITableView) -> UITableViewCell {
let cell = tableView.dequeueReusableCell() as Cell
cell.configure(with: config)
return cell
}
}
目标是像这样为单元格创建模块
struct GoalTitleCellModule: CellModule {
typealias Cell = GoalTitleCell
var config: GoalTitleConfiguration
}
但xcode抱怨“Type'GraceTitleCellModule'不符合协议'CellModule'”。
我做错了什么?
答案 0 :(得分:1)
使ObjectiveM C可见CellModule协议并将GoalTitleCellModule类型更改为class将解决您的问题。