2017-09-28 19 views
0

Xcode 9には、次の問題で新しい警告が表示されます。警告は、そのイベントを考えるとジェネリックスのサブクラス化

冗長スーパー制約

class TypeA<T: NSManagedObject> {} 

class TypeB<L: NSManagedObject, U: TypeA<L>> {} 

class TypeC<Event> {} 

はどのように私は上記の警告を抑制することができ、NSManagedObjectのサブクラスであるのか?

おかげ

答えて

0

レポートナビゲータで完全なコンパイラの出力でより多くの情報を見つけることができます。

main.swift:7:16: warning: redundant superclass constraint 'L' : warning: redundant superclass constraint 'L' : 'NSManagedObject' 
class TypeB<L: NSManagedObject, U: TypeA<L>> {} 
      ^
main.swift:7:36: note: superclass constraint 'L' : 'NSManagedObject' inferred from type here 
class TypeB<L: NSManagedObject, U: TypeA<L>> {} 
           ^

class TypeB<L: NSManagedObject, U: TypeA<L>> {} 

に制限L: NSManagedObjectが暗黙のうちにTypeA<L>に与えられていることを意味しています、 は、すでにLをのサブクラスに制限しています。あなたはclassB宣言からその制約を削除することができ

class TypeB<L, U: TypeA<L>> {} 
+0

はあなたに@Martinをありがとうございます。私はあなたの答えを正しいものとして受け入れます。 –