title: Watch Connectivity: didReceiveMessage not called
body: <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>