将字典对象传递给 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
}
我正在尝试使用 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
}