我在Objective-C中声明了一个类方法:
+ (id) someFunction:(NSDictionary *)param;
当我对类进行子类化并在Swift中使用以下方法覆盖此方法时:
override class func someFunction(param : NSDictionary) -> AnyObject?
我收到错误:
使用选择器覆盖方法' someFunction:'有不兼容的类型 '(NSDictionary) - > AnyObject'?
如何正确覆盖方法?
答案 0 :(得分:3)
当我尝试从Swift中的其他地方自动完成该类函数时,Xcode告诉我param
是[NSObject: AnyObject]!
,这使得方法声明起作用:
override class func someFunction(param: [NSObject: AnyObject]!) -> AnyObject? {
return "Foo"
}
这可能是一个编译器错误,因为我很确定应该正确地桥接到NSDictionary!
(它似乎是单向桥接,而不是其他方式,或者其他东西)。