2013-02-17 62 views
7

यह this question पर अनुवर्ती है। यदि आपको कोईhandleTurnEventForMatch:didBecomeActive: पर कॉलबैक प्राप्त नहीं हो रहा है, तो वहां जवाब का प्रयास करें।handleTurnEventForMatch: didBecomeActive: कॉलबैक केवल कुछ समय तक पहुंच रहा है

मेरे खेल में, मुझे केवल कुछ समय में ईवेंट इवेंट नोटिफिकेशन प्राप्त हो रहा है। लेकिन अगर मैं matchMakerViewController पर वापस जाता हूं और मैच को दोबारा लोड करता हूं, तो राज्य हमेशा सही होता है।

मेरा गेम प्रत्येक मोड़ के दौरान कई बार टर्न स्टेट अपलोड करता है। अनजाने में, ऐसा लगता है कि यदि अन्य डिवाइस को प्रतिद्वंद्वी की बारी के लिए एक अधिसूचना प्राप्त होती है, तो उसी मोड़ के लिए और अधिसूचनाएं प्राप्त होने की संभावना कम होती है। हालांकि, यह 100% नहीं है।

सामान्यतः, मेरा इंटरनेट कनेक्शन बहुत अच्छी तरह से काम करता प्रतीत होता है।

कोई विचार क्या हो सकता है?

+0

एक ही समस्या है। जब एप्लिकेशन को लॉन्च किया जाता है तो HandTventEventForMatch विधि उसी मैच के समय के लिए बुलाया जाता है। – Sergio

+0

बिल्कुल वही समस्या है। अधिकांश समय केवल एक ही डिवाइस दूसरे को भेज सकता है, और दूसरा उत्तर नहीं दे सकता है। लेकिन यह एक तरफा दिशा मैच से मिलान से अलग है। –

उत्तर

8

मुझे अंत में समस्या का पता चला।

ठीक है, अगर आप GKTurnBasedMatchmakerViewController का उपयोग करते हैं, तो यह आपके वर्तमान प्रतिनिधि से प्रतिनिधिमंडल चुरा लेता है।

यह शायद की तरह कुछ मिल गया है: के रूप में ViewController अद्यतन करने के लिए जब बदलाव GameCenter से होने की जरूरत है, तो यह GKTurnBasedEventHandler के लिए प्रतिनिधि बन जाता है

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self; 

यह एकदम सही समझ में आता है।

आप अपने खुद के वस्तु को सौंपने के वापस जाने के लिए ही आप इस लाइन रखना चाहिए चाहते हैं: GKTurnBasedMatchmakerViewControllerDelegate प्रोटोकॉल में सभी समारोह के सबसे ऊपर स्थित

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self; 

+2

आप बस मुझे एक टन बचाओ। धन्यवाद! –

+0

मुझे खुशी है कि यह कुछ लोगों के लिए काम करता है। हां, यह मेरे लिए काम नहीं कर रहा है। –

+1

मुझे एक ही समस्या है लेकिन आपका सुझाया गया समाधान मदद नहीं करता है (आईओएस 6.1.x i.e. पर)। मैं जोर दे रहा हूं कि प्रतिनिधि अभी भी है जो मैं चाहता हूं कि यह प्रोटोकॉल में सभी कार्यों के शीर्ष पर होना चाहिए, और इनमें से कोई भी विफल नहीं होता है। अगर ऐप्पल को GKTurnBasedMatchmakerViewController के कार्यान्वयन में प्रतिनिधि को चोरी करना था, तो इन कार्यों में से किसी एक को कॉल करने से पहले यह मूल्य क्यों पुनर्स्थापित नहीं करेगा? – Drux