2015-09-26 6 views
5

प्रदर्शित नहीं कर रहा है मैं आईओएस से वॉचकिट में डेटा पास कर रहा हूं। मुझे यह दिखाने के लिए डेटा नहीं मिल रहा है कि वॉचकिट पक्ष पर किसी भी तरह से प्राप्त किया गया था।वॉचकिट डेटा

यह ठीक काम करता है: आईओएस TableViewController

func getCloudKit() { 
    ///... 
    let publicData = container.publicCloudDatabase 
    publicData.performQuery(query, inZoneWithID: nil) { results, error in 
     if error == nil { // There is no error 
      for play in results! { 
       let newPlay = Play() 
        newPlay.tColor = play["TColor"] as! String 

       do { 
        try WatchSessionManager.sharedManager.updateApplicationContext(["color" : newPlay.tColor]) 
        NSLog("NewPColor: %@", newPlay.tColor) 
       } catch { 
        print(error) 
       } 
       self.objects.append(newPlay) 
      } 
     } else { 
      print(error) 
     } 
    } 
} 

यह NSLog रों के किसी भी बुला रहा है नहीं या डेटा के किसी भी दिखा: WatchKit InterfaceController

import WatchConnectivity 


class InterfaceController: WKInterfaceController, WCSessionDelegate { 

    @IBOutlet var colorLabel: WKInterfaceLabel! 

    private let session: WCSession? = WCSession.isSupported() ? WCSession.defaultSession() : nil 

    private func configureWCSession() { 
     session?.delegate = self; 
     session?.activateSession() 
    } 

    override init() { 
     super.init() 
     configureWCSession() 
    } 

    override func awakeWithContext(context: AnyObject?) { 
     super.awakeWithContext(context) 
    } 

    func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) { 
     let colorWatch = applicationContext["color"] as? String 
     NSLog("Check if anything here: %@", colorWatch!) 

       dispatch_async(dispatch_get_main_queue()) { 
        if let colorWatch = colorWatch { 
         self.colorLabel.setText("From iPhone: \(colorWatch)") 
         NSLog("Heres all the strings %@", colorWatch) 
        } else { 
         NSLog("Nothing") 
        } 
       } 
    } 


} 

कोई भी विचार? धन्यवाद!

+0

WatchSessionManager क्या है, और यह WCSession की स्थापना की और इसे सक्रिय करने के लिए सुनिश्चित करें करता है? – ccjensen

+0

'वॉचसेशन मैनेजर' WCSession सेट अप करने और इसे सक्रिय करने के लिए एक सिंगलटन क्लास है। यह आईओएस पक्ष पर है, इसलिए जब मैं सबकुछ लॉग करता हूं तो वह हिस्सा पूरी तरह से काम करता है। वॉचकिट पक्ष वह काम नहीं कर रहा है। कोई विचार? – SRMR

+0

कॉन्फ़िगरेशन सत्र में सत्र है() शून्य शायद? – ccjensen

उत्तर

2

पता चल सके कि सत्र की तरह कुछ के साथ नहीं के बराबर है की कोशिश करो (मेरी तेज foo कमजोर है):

private func configureWCSession() { 
    print("session: \(session?)) 
    session?.delegate = self; 
    session?.activateSession() 
} 
+0

मैंने 'प्रिंट (" सत्र: \ (सत्र) ") किया था और यह मुझे 'सत्र दिया: वैकल्पिक ()' तो मुझे लगता है कि आप कुछ सही पर हैं ? – SRMR

+0

हमम ... प्रिंट जोड़ने का प्रयास करें ("सत्र ... सक्रिय करने के लिए कॉल सत्र के बाद। फिर यह क्या प्रिंट करता है? – ccjensen

+1

हाँ यह 'सक्रिय सत्र()': "सत्र: वैकल्पिक () " – SRMR

संबंधित मुद्दे