2014-10-20 30 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

相關問題