【问题标题】:Delegate does not implement session:didReceiveApplicationContext:委托没有实现 session:didReceiveApplicationContext:
【发布时间】:2018-01-15 09:33:28
【问题描述】:

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

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

[WC] -[WCSession handleApplicationContextWithPairingID:]_block_invoke_2 委托 RSense_Watch_App_Extension.WatchSessionManager 未实现 session:didReceiveApplicationContext:

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

这是来自我的手表应用程序:

extension WatchSessionManager {

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

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

}

iOS 和 Watch App 已正确配对,会话也正常。

你能找出苦恼的地方吗?

【问题讨论】:

  • 请注意,在当前的 Swift 中,您应该使用 Any 而不是 AnyObject,并且方法的当前声明使用 ` [String : Any]`。
  • This blog post 完全满足您的需求。

标签: ios swift watchkit apple-watch watchconnectivity


【解决方案1】:

感谢@Larme 和@pkc456,我找到了问题。

我刚刚将 public 添加到我的函数中,并将参数“AnyObject”更改为“Any”。

这里是更新的功能:

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

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

}

现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2011-11-11
    相关资源
    最近更新 更多