A. Silva
A. Silva

Reputation: 719

Delegate does not implement session:didReceiveApplicationContext:

I'm trying to send data from my iOS app to my Watch App. The sending of the data seems to work but the reception don't.

When the Watch app receipts a data, it gives me this exception:

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

The problem is that I do have the above mentioned function implemented.

This is from my Watch App:

extension WatchSessionManager {

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

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

}

The iOS and Watch App are correctly paired, and the session is okay too.

Can you find what is strugling?

Upvotes: 3

Views: 2177

Answers (1)

A. Silva
A. Silva

Reputation: 719

Thanks to @Larme and @pkc456 I found the issue.

I just added public to my function and changer the parameter "AnyObject" to "Any".

Here is the function updated:

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

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

}

It works now.

Upvotes: 4

Related Questions