将字典对象传递给 Swift 中的 Objective C 协议

Passing dictionary objects to Objective C protocol in Swift

我正在尝试使用 swift 将字典对象传递给 Objective C 协议。

协议代码片段如下:

@protocol MessageDelegate

- (void)handleNewMessageArrived:(NSDictionary *)messageContent;

@end

这是 swift class 实现协议:

class ViewController: UIViewController, MessageDelegate
{
 ...

 func handleNewMessageArrived(messageContent : NSDictionary!)
 {
  ...    
 }
}

但是构建失败,我得到的错误是:

"类型 'ViewController' 不符合协议 'MessageDelegate"

我查看了 this SO Question,但它涉及特定的对象类型。

我declare\implement委托方法的方式有没有错误?或者以我假设参数映射到 swift?

的方式

我是 Swift 的新手,非常感谢任何帮助。

尝试在您的 Swift class 中实现该方法,如下所示:

func handleNewMessageArrived(messageContent: [NSObject : AnyObject]!) {
    // Handle the message
}

如果是 Swift 3,这就是你需要的

func handleNewMessageArrived(messageContent: [AnyHashable : Any]!) {
    // Handle the message
}