2017-09-26 18 views
1

私はviewControllerと同じモデルタイプを使用してジェネリック型Modelクラスと汎用BaseClassを継承する必要があるviewControllerクラスをviewControllerクラスに持っています。
以下のようにすると、警告Redundant superclass constraint 'M' : 'Object'がスローされます。 はそれ自体Mに依存しているので、私はどのように警告を出すことなくそれを行うことができるかはわかりません。Swiftのジェネリッククラスの冗長スーパークラス制約の警告

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

関連する問題