我有一个viewController类,它实现了泛型类Model和一个通用的TableCell,它需要使用与viewController相同的Model类型从泛型baseClass继承。
像下面这样做会抛出警告Redundant superclass constraint 'M' : 'Object'
。我没有看到如何在没有警告的情况下做到这一点,因为BaseTableView
本身依赖于M
。
public class BaseTableView<M:Object, C:BaseTableCell<M>>: UIViewController {
typealias Model = M
typealias TableCell = C
(...)
}
答案 0 :(得分:1)
警告是因为BaseTableCell的定义已经强制实现与Object的一致性。您可以将班级定义更改为:
public class BaseTableView<M, C:BaseTableCell<M>>: UIViewController {
(...)
}
这应解决您的警告并保留预期的功能。