ios - 在与非泛型父类(super class)同名的泛型类中使用类方法时出错

标签 ios generics swift

以下代码导致错误Ambiguous use of 'B' :

public class A {
    public class func B<T>(t: T) -> T {
        return t
    }

}
public class AT<T> : A {
    public class func B<T1>(t: T1) -> T1 {
        return t
    }
}
println(AT<Int>.B("a"))

但是在尝试添加 override 时方法BAT<T> , 得到错误 Method does not override any method from its superclass .

最佳答案

您不能覆盖该函数,因为参数类型不同,因此,一个函数不能充当另一个函数。此外,如果它已经存在,则不能使用相同的方法签名。唯一的解决办法是更改名称,或者使用与父类(super class)相同的参数类型。此外,您不能隐藏父类(super class)中的方法,但如果通过覆盖它来使用它,您可能会抛出异常。

关于ios - 在与非泛型父类(super class)同名的泛型类中使用类方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27298148/

相关文章:

objective-c - 以编程方式添加和删除 View 及其 Controller 的最佳方法是什么?

用于解码 JAXB 对象的 Java 泛型

java - 调用方法之前的 Java 泛型表示法是什么?

C# 通用扩展方法装箱转换问题

swift - 奇怪的 SKCameraNode 实例化失败

ios自动布局如何正确编写nslayoutconstraint?

iphone - 平均多个 UIImages

ios - 以编程方式将纬度和经度放在 UILabel 上

ios - 无法使用 NSKeyedArchiver 保存我的模型

ios - 是否有可能获得更精确的反向地理编码?