I'm hoping someone here may have some thoughts on Watch OS 2 connectivity that can point me in the right direction. Succinctly, I am trying to pass a set of data (from a custom class called FileData) to my WatchKit extension. When I run the WatchKit app, I can see that the WCSession is being activated, but the dataset never seems to get passed to the Watch (though if I change the data to a String and pass something simple like "hello", it does work properly);
TableViewController.swift (iOS side)
...
func sendToWatch(files: [FileData]) {
let session = WCSession.defaultSession()
let applicationData = ["myFiles":[FileData](files)]
session.sendMessage(applicationData, replyHandler: { reply in
print("Got reply: \(reply)")
}, errorHandler: { error in
print("error: \(error)")
})
}
...
InterfaceController.swift (WatchKit extension)
...
func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) {
let files = message["myFiles"] as! [FileData]
print("Got a message")
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print(files)
})
reloadTable()
}
...
Am I wrong in assuming that I can pass a custom class via Watch Connectivity? Or have I done something wrong here?
Thank you!