Xcode Swift 自动完成显示错误的方法
Xcode Swift auto-complete shows wrong method
我有以下 类:
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
}
自动完成预览显示错误,因为编译器不喜欢它。我是否错误地声明了我的 类 之一,或者是否需要修复自动完成?
感谢@matt 对 OP 问题的解释。
当您在 BarClass
中覆盖 FooClass.foo
时,自动完成必须显示 foo(a: Int, b: Bool)
但它显示 foo(a: A, b: B)
这似乎是一个错误:
此外,当您不覆盖 BarClass
中的 FooClass.foo
并像 BarClass().foo
那样调用它时,自动完成也是错误的:
但是,如果您在 BarClass
中重写 FooClass.foo
,那么自动完成是正确的:
我有以下 类:
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
}
自动完成预览显示错误,因为编译器不喜欢它。我是否错误地声明了我的 类 之一,或者是否需要修复自动完成?
感谢@matt 对 OP 问题的解释。
当您在 BarClass
中覆盖 FooClass.foo
时,自动完成必须显示 foo(a: Int, b: Bool)
但它显示 foo(a: A, b: B)
这似乎是一个错误:
此外,当您不覆盖 BarClass
中的 FooClass.foo
并像 BarClass().foo
那样调用它时,自动完成也是错误的:
但是,如果您在 BarClass
中重写 FooClass.foo
,那么自动完成是正确的: