对于watchOS 2
and Xcode 7.3
,我正在尝试将我在 iPhone 端的图像发送到手表端。在电话方面,我有这个:
func sendImage() {
if WCSession.isSupported() {
let session = WCSession.defaultSession()
if session.watchAppInstalled {
do {
let image = UIImage(named: "myPic")
let imgData = NSKeyedArchiver.archivedDataWithRootObject(image!)
let dictionary = ["img": imgData]
try session.updateApplicationContext(dictionary)
} catch {
print("ERROR: \(error)")
}
}
}
}
然后,在WatchKit Extension
边(ExtensionDelegate
文件)中,我有:
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
let initialController = WKExtension.sharedExtension().rootInterfaceController as! InterfaceController
initialController.showImage(applicationContext["img"] as! NSData)
}
并在InterfaceController
:
func showImage(imageData: NSData) {
let image = UIImage(data: imageData, scale: 1.0)
self.myImage.setImage(image!)
}
哪里myImage
是WKInterfaceImage
插座。当showImage
方法被调用时,imageData
不是nil
,而是image
在self.myImage.setImage(image!)
被调用时。我究竟做错了什么?