Delegate不实现session:didReceiveApplicationContext:

时间:2018-01-15 09:33:28

标签: ios swift watchkit apple-watch watchconnectivity

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

当Watch应用程序收到数据时,它会给我这个例外:

  

[WC] - [WCSession handleApplicationContextWithPairingID:] _ block_invoke_2 delegate RSense_Watch_App_Extension.WatchSessionManager不实现session:didReceiveApplicationContext:

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

这是我的Watch App:

extension WatchSessionManager {

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

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

}

iOS和Watch App配对正确,会话也可以。

你能找到什么东西吗?

1 个答案:

答案 0 :(得分:3)

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

我刚刚将public添加到我的函数中并更改参数" AnyObject"到"任何"。

这是更新的功能:

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

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

}

现在有效。