所以我在Obj-C超类中有这个方法:
+ (Class<Executor>)executorClass
我需要在我的Swift3子类中覆盖它。我尝试了什么:
override class func executorClass() -> AnyClass // not match
override class func executorClass() -> Executor.Type // not match
override class func executorClass() -> AnyObject.Type // not match
override class func executorClass() -> Any.Type // obviously not match
在Swift2之前,以下代码有效:
override class func executorClass() -> AnyObject.Type
答案 0 :(得分:0)
归功于@Harnish
Obj-C方法中的删除Class<Executor>
不合法,但仍可编译。<Executor>
解决编译问题。又名:
// Obj-C
+ (Class)executorClass
// Swift
override class func executorClass() -> AnyClass // good
修改:归功于@Sulthan
+ (Class<Executor>)executorClass
如果Executor
是协议,则上述代码完全合法。但在我的情况下,它是另一个类。所以,我猜,这是问题的根源。