iOS 6'da authenticateHandler kullanıldığında, kullanıcı bunu iptal ederse oyun merkezi oturum açma görünümü görüntülenmez. Oyun merkezinin, 3 kez iptal denemesinden sonra bir uygulamayı otomatik olarak kilitleyeceğinin farkındayım, ancak sadece 2 denemeden bahsediyorum. Giriş işlemini iptal ederse, uygulamayı terk etmek zorunda kalırlar ve oyun merkezi kimlik doğrulamasından bile giriş bilgilerini sunmadan önce geri gelirler. IOS 6'da bu davayı nasıl ele alacağınıza dair herhangi bir fikir var mı?iOS 6 Game Center authenticateHandler, iptal edildikten sonra oturum açamaz
eski authenticateWithCompletionHandler yöntemini kullanarak zaman iyi çalışır: bu uygulamam için önemlidir
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
nedeni Oyun Merkezi'ni çok oyuncu için ihtiyaç olmasıdır. Uygulama, lansmandaki oyun merkezine kimlik doğrulamayı dener, ancak kullanıcı iptal ederse, tekrar başlatılmasın diye sormazlar, bu nedenle, nagged olmazlar. Yaptığımız şey, çoklu oyuncu seçtiğinde oturum açmamışlarsa Oyun Merkezi Giriş düğmesini gösterir. Giriş düğmesi, authenticateWithCompletionHandler (ve şimdi GKLocalPlayer.localPlayer.authenticateHandler öğesini yeniden ayarlayarak) çağırarak oyun merkezi girişini zorlar.
Zaten bunu ancak [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: nil] aradığınız gibi geliyor authenticateHandler bir kimlik doğrulama görünümü denetleyicisi ile tekrar çağrılmasına neden olur. Bu yöntem iOS6'da olsa da kullanımdan kaldırılmıştır. – Greg
Bunu işe almak için amorti edilen çağrıyı kullanıyorum, ancak kullanımdan kaldırılmış aramalar kullanmadan bunu yapmanın "doğru" yolunu arıyorum. Ben nil yeni GKLocalPlayer.localPlayer.authenticateHandler ayarlama çalıştı ve daha sonra geri işleyicisi için bu işe yarayıp yaramayacağını görmek ve nil bunu ayarlamaya çalışırken bir istisna var.O (sadece gerçekten hacky görünüyordu) bir giriş tetikleyecek eğer ben başka işleyicisi için işleyici geçiş denedim –
görmek için farklı bir işleyici olarak ayarlamayı deneyin vermedi ve aynı zamanda yeni bir giriş iletişim açıklığı tetiklemek etmediğini . Herhangi bir tavsiyede bulunup bulunmadığını görmek için geliştirici forumlarında yayınladım ve bir şey duyarsam geri göndereceğim. https://devforums.apple.com/message/744983 – Greg