Xcode 9 有一个新的警告,该警告会针对以下问题亮起。警告是
redundant superclass constraint
class TypeA<T: NSManagedObject> {}
class TypeB<L: NSManagedObject, U: TypeA<L>> {}
class TypeC<Event> {}
鉴于 Event 是 NSManagedObject 的子类,我可以通过什么方式抑制上述警告?
谢谢
最佳答案
您可以在报告导航器的完整编译器输出中找到更多信息:
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>> {}
关于swift - 泛型子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46462902/