2014-10-20 59 views
3

我已经宣布在Objective-C类方法:夫特:覆盖方法与选择器具有不兼容的类型

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

当我子类类并覆盖在夫特此方法与此:

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

我得到错误:

Overriding method with selector 'someFunction:' has incompatible type '(NSDictionary) -> AnyObject?'

如何正确覆盖该方法?

回答

3

当我尝试自动完成从斯威夫特别的地方该类功能时,Xcode告诉我,param[NSObject: AnyObject]!,这使得该方法申报工作:

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

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

+0

哇,谢谢!我没有得到任何自动完成的建议,但你的工作。抛出参数并没有问题,所以这是一个我可以忍受的编译器错误。 – Thomas 2014-10-20 03:09:24

+0

似乎确实是某种编译器错误,我很多自己遇到了 – bolnad 2015-01-23 21:40:30