2014-10-20 3 views
3

я объявленный метод класса в Objective-C:Свифт: метод переопределение с переключателем имеет несовместимый тип

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

Когда я подкласс класса и переопределить этот метод в Swift с этим:

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

я получаю ошибку:

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

Как переопределить метод правильно?

ответ

3

При попытке автозаполнение, что класс функций из где-то в Swift, Xcode рассказывает мне, что param является [NSObject: AnyObject]!, что делает метод декларации работы:

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

Это может быть ошибка компилятора, так как я Я уверен, что он должен правильно соединиться с NSDictionary! (он, кажется, соединяется в одну сторону, но не с другим, или что-то в этом роде).

+0

Ничего себе, спасибо! Я вообще не получал предложений по автозаполнению, но ваш работает. Нет никакого смысла бросать param, так что это ошибка компилятора, с которой я могу жить. – Thomas

+0

, похоже, является своего рода ошибкой в ​​компиляторе, я сам нахожусь в этом – bolnad

Смежные вопросы