委托未实现 session:didReceiveApplicationContext:

Delegate does not implement session:didReceiveApplicationContext:

我正在尝试将数据从我的 iOS 应用程序发送到我的 Watch 应用程序。 发送数据似乎有效,但接收无效。

当 Watch 应用收到数据时,它给我这个异常:

[WC] -[WCSession handleApplicationContextWithPairingID:]_block_invoke_2 delegate RSense_Watch_App_Extension.WatchSessionManager does not implement session:didReceiveApplicationContext:

问题是我确实实现了上述功能。

这是来自我的手表应用:

extension WatchSessionManager {

// Receiver
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {

    DispatchQueue.main.async(execute:  {
        print("Data Received")
    })

}

iOS和Watch App配对正确,session也正常。

你能找到挣扎的原因吗?

感谢@Larme 和@pkc456 我发现了这个问题。

我刚刚将 public 添加到我的函数并将参数 "AnyObject" 更改为 "Any"。

这里是更新的函数:

public func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {

    DispatchQueue.main.async(execute:  {
        print("Data Received")
    })

}

现在有效。