तो मैं आईफोन से वॉच में एक सरणी का अनुरोध करने के लिए वॉच कनेक्टिविटी का उपयोग कर रहा हूं।त्रुटि: "संदेश उत्तर बहुत लंबा लगा" - WCSession घड़ी OS2
विचार घड़ी से sendMessage
था, और आईफोन didReceiveMessage
विधि के भीतर सरणी के साथ जवाब देगा।
हालांकि आईफोन प्रतिक्रिया नहीं दे रहा है, मैंने सोचा था कि जब मैं घड़ी से संदेश भेजता हूं तो आईफोन एप्लिकेशन खोल देगा। मैंने sendMessage
पर एप्लिकेशन खोलने का भी प्रयास किया है लेकिन अभी भी कोई भाग्य नहीं है। जब मैं काफी देर तक प्रतीक्षा करता हूं तो मुझे निम्न त्रुटि संदेश मिलता है:
Error Domain=WCErrorDomain Code=7012 "Message reply took too long." UserInfo={NSLocalizedDescription=Message reply took too long., NSLocalizedFailureReason=Reply timeout occured.}
क्या कोई जानता है कि मैं कहां गलत हो रहा हूं?
एप्पल घड़ी
import WatchKit
import Foundation
import CoreData
import WatchConnectivity
class BookmarkedInterfaceController: WKInterfaceController, WCSessionDelegate {
var session : WCSession!
var objects: [AnyObject]!
@IBOutlet var table: WKInterfaceTable!
override func willActivate() {
super.willActivate()
//Check if session is supported and Activate
if (WCSession.isSupported()) {
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
sendMessageToIphone()
}
func sendMessageToIphone() {
if WCSession.defaultSession().reachable {
print("WCSession is reachabe")
let messageDict = ["Request": "iPhone Can You Give Me The Array"]
WCSession.defaultSession().sendMessage(messageDict, replyHandler: { (replyDict) -> Void in
print(replyDict)
}, errorHandler: { (error) -> Void in
print(error)
})
}
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) {
//recieving message from iphone
print("recieved message from iphone \(message)")
objects.append(message["Array"]!)
print("Objects array = \(objects)")
}
कंसोल आउटपुट
WCSession is reachabe Array nil
iPhone App प्रतिनिधि iPhone से
import UIKit
import CoreData
import WatchConnectivity
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate {
var window: UIWindow?
var session : WCSession!
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Check if session is supported and Activate
if (WCSession.isSupported()) {
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
print("did recieve message from Watch")
let applicationData = ["Array":["One", "Two", "Three"]]
replyHandler(applicationData)
}
कुछ भी नहीं मार डाला जा रहा है। यहां तक कि जब मैं मैन्युअल रूप से ऐप खोलता हूं।
आपका कोड मुझे ठीक लग रहा है। सिर्फ एक प्रश्न, आप एक ही डमी डेटा ('[" ऐरे ": [" वन "," टू "," थ्री "]] ') का उपयोग कर रहे हैं, है ना? क्योंकि यदि आपके पास वास्तविक डेटा वापस भेजने के लिए कुछ अन्य कोड ब्लॉक चल रहा है तो कुछ अन्य समस्या पूरी तरह से हो सकती है। जैसे कस्टम ऑब्जेक्ट्स की एक सरणी को इस तरह वॉच ऐप पर वापस नहीं भेजा जा सकता है। – Gandalf
@ गैंडफ मैं पहले स्ट्रिंग्स की एक सरणी के साथ अभ्यास करने जा रहा था जिसे WCSession फ़ंक्शन के भीतर भेजा और मुद्रित किया गया था। मेरा उद्देश्य तालिका में प्रदर्शित करने के लिए एनएसएमएनेज्ड ऑब्जेक्ट की एक सरणी को घड़ी में भेजना था। तो मूल रूप से फोन पर उत्तर हैंडलर शब्द को देखने के लिए शब्दकोश के साथ और वस्तुओं की सरणी भेज देगा। वास्तव में अजीब बात यह है कि मैं फोन को जवाब देने के लिए कैसे प्राप्त नहीं कर सकता:/नई रिलीज के साथ एक्सकोड अपडेट कर सकता हूं और सर्वोत्तम – RileyDev