Swift:用选择器重写方法具有不兼容的类型



我已经在Objective-C中声明了一个类方法:

+ (id) someFunction:(NSDictionary *)param;

当我在Swift中用以下内容重写该类的子类并重写该方法时:

override class func someFunction(param : NSDictionary) -> AnyObject?

我得到错误:

用选择器"someFunction:"重写方法的类型不兼容'(NSDictionary)->AnyObject?'

如何正确覆盖该方法?

当我试图从Swift中的其他地方自动完成该类函数时,Xcode告诉我param[NSObject: AnyObject]!,这使得方法声明有效:

override class func someFunction(param: [NSObject: AnyObject]!) -> AnyObject? {
    return "Foo"
}

这可能是一个编译器错误,因为我很确定它应该正确地桥接到NSDictionary!(它似乎是以一种方式桥接,但不是以另一种方式,或者其他什么方式)。

最新更新