Xcode 9有一个新警告,可以解决以下问题。警告是
冗余超类约束
class TypeA<T: NSManagedObject> {}
class TypeB<L: NSManagedObject, U: TypeA<L>> {}
class TypeC<Event> {}
鉴于Event是NSManagedObject的子类,我能以什么方式抑制上述警告?
由于
答案 0 :(得分: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
限制为NSManagedObject
的子类。
您可以从classB
声明中删除该约束:
class TypeB<L, U: TypeA<L>> {}