Swift:使用selector的覆盖方法具有不兼容的类型

时间:2014-10-20 00:18:08

标签: objective-c swift

我在Objective-C中声明了一个类方法:

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

当我对类进行子类化并在Swift中使用以下方法覆盖此方法时:

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

我收到错误:

  

使用选择器覆盖方法' someFunction:'有不兼容的类型   '(NSDictionary) - > AnyObject'?

如何正确覆盖方法?

1 个答案:

答案 0 :(得分:3)

当我尝试从Swift中的其他地方自动完成该类函数时,Xcode告诉我param[NSObject: AnyObject]!,这使得方法声明起作用:

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

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