我已经在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!
(它似乎是以一种方式桥接,但不是以另一种方式,或者其他什么方式)。