2017-09-26 61 views
1

我有viewController类,它实现了泛型类Model类和一个泛型TableCell,它们需要使用与viewController相同的Model类继承泛型baseClass。
像下面这样做会引发警告Redundant superclass constraint 'M' : 'Object'。我不太明白我怎么能没有警告,因为BaseTableView本身依赖于MSwift中泛型类的冗余超类约束警告

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 { 
    (...) 
} 

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

+0

那......实际上很有意义。感谢您指出了这一点! :) – Cyrus