आईओएस 6 में प्रमाणीकरण हैंडलर का उपयोग करते समय, गेम केंद्र लॉग इन दृश्य प्रस्तुत नहीं करेगा यदि उपयोगकर्ता इसे रद्द कर देता है। मुझे एहसास है कि गेम सेंटर 3 रद्द करने के प्रयासों के बाद एक ऐप लॉकआउट करेगा, लेकिन मैं केवल 2 प्रयासों के बारे में बात कर रहा हूं। अगर वे लॉगिन रद्द कर देते हैं, तो उन्हें ऐप छोड़ना होगा और खेल केंद्र से पहले वापस आना होगा प्रमाणीकरण के माध्यम से भी लॉगिन करना होगा हैंडलर फिर से सेट हो रहा है। आईओएस 6 में इस मामले को कैसे संभालना है इस पर कोई विचार है?आईओएस 6 गेम सेंटर प्रमाणीकृत हैंडलर रद्द करने के बाद लॉगिन नहीं कर सकता
यह ठीक काम करता है जब बड़े authenticateWithCompletionHandler विधि का उपयोग कर:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
कारण यह मेरी अनुप्रयोग के लिए महत्वपूर्ण है कि यह बहु खिलाड़ी के लिए खेल केंद्र की आवश्यकता है। ऐप लॉन्च पर गेम सेंटर को प्रमाणीकृत करने का प्रयास करता है, लेकिन यदि उपयोगकर्ता रद्द करता है तो हम उन्हें फिर से लॉन्च नहीं करते हैं, इसलिए वे परेशान नहीं होंगे। हम जो करते हैं वह गेम सेंटर लॉगिन बटन दिखाता है यदि वे बहु-खिलाड़ी चुनते समय लॉग इन नहीं होते हैं। लॉगिन बटन प्रमाणीकरण WithCompletionHandler (और अब GKLocalPlayer.localPlayer.authenticateHandler को सेट करके) को कॉल करके एक गेम सेंटर लॉगिन को मजबूर करता है।
ऐसा लगता है कि आप इस पहले से ही कर रहे हैं, लेकिन बुला [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: शून्य] का कारण होगा authenticateHandler एक प्रमाणीकरण दृश्य नियंत्रक के साथ फिर से कहा जाता है। आईओएस 6 में हालांकि इस विधि को बहिष्कृत किया गया है। – Greg
मैं इसे काम करने के लिए अवमूल्यित कॉल का उपयोग कर रहा हूं, लेकिन मैं बहिष्कृत कॉल का उपयोग किए बिना ऐसा करने का "सही" तरीका ढूंढ रहा हूं। मैंने नया GKLocalPlayer.localPlayer.authenticateHandler को शून्य करने के लिए और फिर मेरे हैंडलर पर वापस देखने की कोशिश की कि यह काम करेगा या नहीं, और इसे अपील करने की कोशिश करने का अपवाद मिला।मैंने यह देखने के लिए एक अलग हैंडलर पर सेट करने की कोशिश नहीं की कि यह लॉगिन करेगा (जो वास्तव में हैकी लग रहा था) –
मैंने हैंडलर को दूसरे हैंडलर पर स्विच करने का प्रयास किया है, और यह भी एक नया लॉगिन संवाद खोलने को ट्रिगर नहीं करता है । मैंने डेवलपर मंचों पर पोस्ट किया है कि किसी को कोई सलाह है या नहीं, और अगर मैं कुछ सुनूं तो यहां वापस पोस्ट करूंगा। https://devforums.apple.com/message/744983 – Greg