Swift中泛型类的冗余超类约束警告

时间:2017-09-26 02:32:30

标签: ios swift generics

我有一个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

  (...)
}

1 个答案:

答案 0 :(得分:1)

警告是因为BaseTableCell的定义已经强制实现与Object的一致性。您可以将班级定义更改为:

public class BaseTableView<M, C:BaseTableCell<M>>: UIViewController {
    (...)
}

这应解决您的警告并保留预期的功能。