我有一个名为CellModel
的基类,如此
public class CellModel{
public init<T>(cell: T.Type, selectionHandler: SelectionHandler) where T: Cell, T: CellType
{
//anything here
}
}
和一个名为CustomCellModel
的类
public class CustomCellModel: CellModel{
init(title: String, selectionHandler: SelectionHandler) {
self.title = title
super.init(cell: CustomCell.self, selectionHandler: selectionHandler)
}
}
CustomCell就像这样
public class CustomCell: CellType, Cell {
}
在super.init
CustomCellModel
方法中调用init
的行中,我收到编译时错误
Generic parameter 'T' could not be inferred
我不知道这有什么不妥。
更新
借助@Hamish,我可以通过将@escaping
添加到selectionHandler
这样的参数来改变我的子类init方法来解决这个问题
public class CustomCellModel: CellModel{
init(title: String, selectionHandler: @escaping SelectionHandler) {
self.title = title
super.init(cell: CustomCell.self, selectionHandler: selectionHandler)
}
}