2015-03-30 5 views
9

सेब घड़ी सिम्युलेटर पर कस्टम लम्बी लुक नोटिफिकेशन का परीक्षण करने में समस्याएं हैं। डीबगर इस त्रुटि को लॉग इन करें:इस त्रुटि से कैसे बचें: "कस्टम अधिसूचना दिखाने के लिए बहुत लंबा समय लगा। स्थिर पर वापस गिरना।"

WatchKit Extension[5230:156324] Took too long to show custom notification. Falling back to static. 

इस समस्या को हल करने के लिए कैसे करें?

+0

मेरे पास भी एक ही समस्या है। मेरे पास केवल डिफ़ॉल्ट कोड है। कृपया इस समस्या को हल करने में मदद करें। – suji

उत्तर

1

मुझे पहले भी यही समस्या थी। अंदर किया गया RereiveRemoteNotification, क्या आप completionHandler(WKUserNotificationInterfaceTypeCustom); पर कॉल कर रहे हैं? इसके अलावा, आप उस समारोह के अंदर क्या कर रहे हैं? अगर बहुत ज्यादा समय लगता है, यह डिफ़ॉल्ट रूप से स्थिर अधिसूचना दिखाएगा:

"Use the static notification interface to define a simple version of your custom notification interface. The purpose of a static interface is to provide a fallback interface in the event that your WatchKit extension is unable to configure the dynamic interface in a timely manner"

+0

हाय @ जेवियर फ्लोरस फ़ॉन्ट, मेरे पास "didReceiveRemoteNotification" विधि में केवल "कोड हैन्डलर (कस्टम)" कोड है। मैं कुछ भी नहीं कर रहा हूं जो बहुत अधिक समय लेता है। अभी भी इस मुद्दे को हल करने का तरीका पता नहीं लगा सका ... – user1872384

+0

इसे हल करने के लिए आपने क्या किया? – user1872384

+0

जैसा कि जेवियर ने कहा, मूल रूप से समय लेने में कुछ भी न करें। अपने सभी कोड पर टिप्पणी करने का प्रयास करें और केवल समापन कॉल करेंडलर (कस्टम)। फिर चरण-दर-चरण टिप्पणी कोड में। मूल रूप से, कुछ भी न करें। अधिसूचना से जानकारी लें, अपना यूआई भरें, यह सब कुछ है। कोई छवि लाने, ऑब्जेक्ट पीढ़ी इत्यादि -> यह सब बहुत लंबा लगता है। – stk

0

अगर आप सेटअप करने के लिए अपने हैंडलर में बहुत लंबा ले नहीं होगा। यदि यह बहुत लंबा लगता है, तो घड़ी स्थिर अधिसूचना के लिए डिफ़ॉल्ट होगी।

करें कि आप सही पूरा होने के ब्लॉक बुला रहे हैं रहें:

completionHandler(WKUserNotificationInterfaceTypeCustom); 

जब पूरा होने हैंडलर ब्लॉक बुला, यदि आप WatchKit अपने स्थिर इंटरफ़ेस प्रदर्शित करने के लिए बजाय, WKUserNotificationInterfaceTypeDefault निरंतर निर्दिष्ट चाहते हैं।

संदर्भ: https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/CustomzingthePushNotificationInterface.html

+0

हाय एएचटीडी, मेरे पास "didReceiveRemoteNotification" विधि में केवल "कोड हैन्डलर (कस्टम)" कोड है। मैं कुछ भी नहीं कर रहा हूं जो बहुत अधिक समय लेता है। अभी भी इस मुद्दे को हल करने का तरीका पता नहीं लगा सका ... – user1872384

+0

@ user1872384 मुझे लगता है कि मुझे आपके जैसा ही समस्या है। मेरे पास पूरा करने वाले हैंडलर के अलावा "didReceiveRemoteNotification" में कुछ भी नहीं है लेकिन मुझे त्रुटि से पहले नहीं मिल सकता है। क्या आपने कभी इसे हल किया है? – tessa

4

मैं Xcode द्वारा स्थापित डिफ़ॉल्ट कोड के साथ वास्तव में इस समस्या थी। मैंने dideeiveRemoteNotification के अंदर कोई भी ऑपरेशन नहीं किया, लेकिन त्रुटि अभी भी हुई।

यह विफल हो गया क्योंकि यह विफल रहा था कि मेरा WKUserNotificationInterfaceController subclass मेरी स्टोरीबोर्ड फ़ाइल में डायनामिक इंटरफ़ेस नियंत्रक से कनेक्ट नहीं था।

समाधान: अपने watchkit अनुप्रयोग के लिए स्टोरीबोर्ड फाइल करने के लिए

  1. जाओ। अपने डायनामिक इंटरफेस नियंत्रक पर
  2. क्लिक करें
  3. कक्षा क्षेत्र में पहचान निरीक्षक (दाएँ फलक में मध्य टैब)
  4. क्लिक करें, अपने WKUserNotificationInterfaceController उपवर्ग का चयन
  5. Voilà (xcode मेरा NotificationController नाम दिया था)!

Make sure your WKUserNotificationInterfaceController subclass is linked to your dynamic interface controller in the Identity inspector!

+0

यह मेरे लिए काम करता है, जब मैं इसे अधिसूचना नियंत्रक के रूप में देता हूं। – suji

+0

यह मेरे लिए काम नहीं किया। –

1

NotificationController के रूप में अपने कस्टम वर्ग के नाम देने की कोशिश करें। एक्सकोड इसे WKUserNotificationcontroller के रूप में लेता है। यह मेरे लिए काम किया।

0

मेरे मामले में समस्या यह थी कि बनाया गया वॉचकिट एक्सटेंशन स्विफ्ट कोड के रूप में कॉन्फ़िगर किया गया था, जबकि मेरी पूरी परियोजना उद्देश्य-सी में थी।

डायनामिक इंटरफ़ेस कभी भी दिखाई नहीं देता है, हमेशा स्टेटिक एक को कंसोल में इस पोस्ट की त्रुटि प्रिंट करने पर स्विच करता है। एक बार जब मैंने वॉचकिट एक्सटेंशन को ऑब्जेक्टिव-सी में बदल दिया तो सबकुछ पूरी तरह से काम करता था।

-1

यदि आप वास्तविक घड़ी का उपयोग करते हैं, तो "घड़ी" -> "सामान्य" में "कलाई का पता लगाने" को बंद करने का प्रयास करें।

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