2013-12-12 14 views
6

Obecnie testuję aplikację Game Center Aware przy użyciu Game Center Sandbox, z jedną instancją działającą na symulatorze iOS, a drugą na iPadzie Mini Retina. Mam kontroler widoku, który musi odbierać zdarzenia kolei więc zaimplementować metodęplayer: receivedTurnEventForMatch: didBecomeActive: niekonsekwentnie/rzadko strzela

player:receivedTurnEventForMatch:didBecomeActive: 

w protokole GKLocalPlayerListener, który przyjmuje mój UIViewController podklasy, a następnie zarejestrować się na imprezach z tej linii

[[GKLocalPlayer localPlayer] registerListener: self]; 

w metodzie init kontrolera widoku. Jednak pomimo aplikacji Game Center, która mówi, że dwa wystąpienia tej gry są ze sobą połączone, ta metoda rzadko jest wywoływana na iPadzie i nie sądzę, abym kiedykolwiek zobaczył wywoływaną przez nią symulację. Jednak przejście do aplikacji Game Center pokazuje, że obie instancje są aktualizowane, co wskazuje, że obie instancje mogą odbierać zdarzenie. Co może być przyczyną tego?

+0

Czy znalazłeś coś lepszego niż obejście tego problemu? –

+0

Nie, nigdy tego nie zrobiłem. –

Odpowiedz

2

Miałem ten sam problem na iOS 7/Xcode 5/iPhone 5. Aby naprawić ten problem, wystarczy dodać "Game Center" do swojego identyfikatora aplikacji. Możesz to zrobić, przechodząc do zakładki "Możliwości" projektu w Xcode.

Należy pamiętać, że player:receivedTurnEventForMatch:didBecomeActive: będzie uruchamiany tylko na urządzeniach.

+0

Dzięki, ale to nie był problem - zanim poprosiłem, dodałem prawo do centrum gier. Jestem ciekawy, gdzie czytasz, że ten selektor jest uruchamiany tylko na urządzeniach ... Nie widziałem tego w dokumentach, choć na pewno wydaje się to prawdą. –

+0

To było moje śledztwo. Przeczytaj także o tym na stackoverflow: http://stackoverflow.com/questions/15957576/gkturnbasedmatch-receive-data – Sergio

+0

Zostało również opisane dotyczące odbierania zaproszeń: https://developer.apple.com/library/ios/documentation/NetworkingInternet /Conceptual/GameKit_Guide/TestingYourGameCenter-AwareGame/TestingYourGameCenter-AwareGame.html – Sergio

1

Obejście znalazłem tego problemu na symulatorze jest wywołanie metody

loadMatchDataWithCompletionHandler: 

gdy przycisk jest wciśnięty odświeżania w interfejsie użytkownika, co powoduje dane mecz być ładowane w symulatorze.

Powiązane problemy