Xcode Swift自动完成显示错误的方法

时间:2015-10-17 19:46:11

标签: xcode swift generics subclass type-alias

我有以下课程:

class FooClass<A,B>: NSObject {

    func foo(a: A, b: B) { } 

}

class BarClass: FooClass<Int, Bool> { 

    override func foo(a: A, b: B) { }        //AUTO-COMPLETE'S PREVIEW SHOWS THIS, BUT COMPILER COMPLAINS "USE OF UNDECLARED TYPE 'A'"

    override func foo(a: Int, b: Bool) { }   //AUTO-COMPLETE'S PREVIEW DOESN'T SHOW THIS, BUT COMPILER APPROVES

}

自动完成预览显示错误的预览,因为编译器并不喜欢它。我是否错误地声明了我的某个课程,或者是否需要修复自动完成课程?

1 个答案:

答案 0 :(得分:1)

感谢@matt解释OP的问题。

自动完成功能必须在foo(a: Int, b: Bool)覆盖FooClass.foo时显示BarClass,但会显示foo(a: A, b: B),这似乎是一个错误: Screenshot of bug

同样,当您未覆盖FooClass.foo中的BarClass并将其称为BarClass().foo时,自动完成也是错误的: enter image description here

但如果您在FooClass.foo中覆盖BarClass,则自动完成是正确的: enter image description here