Watch Connectivity: didReceiveMessage not called
<p>I am using WatchConnectivity framework to receive a string from my app.  Here is how I send the string in Obj-C from the app:</p>

<pre><code>-(void) viewDidLoad {

    //WATCHKIT
    WCSession* session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];

    [self sendInfoToWatch];
}

-(void) sendInfoToWatch {

    WCSession* session = [WCSession defaultSession];
    session.delegate = self;
    [session activateSession];

    [session sendMessage:@{@"a":@"hello"} replyHandler:^(NSDictionary&lt;NSString *,id&gt; * _Nonnull replyMessage) {

    } errorHandler:^(NSError * _Nonnull error) {

    }];
}
</code></pre>

<p>My Watch app is in Swift.  This is how I retrieve the message: </p>

<blockquote>
  <p><strong>Note:</strong> "wc session is supported" works and gets logged to the console </p>
</blockquote>

<pre><code>override func willActivate() {
    if(WCSession.isSupported()){
        NSLog("wc session is supported")
        self.session = WCSession.defaultSession()
        self.session.delegate = self
        self.session.activateSession()
    }

    super.willActivate()
}
</code></pre>

<p>The following function is never called, none of the NSLog's show up, so the QRCodeTitleLabel does not update its text.</p>

<pre><code>func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) {
    //recieving message from iphone

    QRCodeTitleLabel.setText(message["a"]! as? String)

    NSLog("This was called")
    NSLog((message["a"]! as? String)!)

}
</code></pre>

<p>Does anyone know why this method is not called?</p>

<p>Also, I have imported WatchConnectivity and included WCSessionDelegate after my class name.</p>

<p><strong>Edit:</strong></p>

<p>I added the function with replyHandler, but this method still isn't called:</p>

<pre><code>func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -&gt; Void) {
    QRCodeTitleLabel.setText(message["a"]! as? String)

    NSLog("This was called")
    NSLog((message["a"]! as? String)!)
}
</code></pre>