GameKit
에 이상한 문제가 있습니다. 나는 다른 사람들이 같은 문제를 겪고 있는지 알고 싶다. 그게 버그 야?게임 센터의 matchdata가 업데이트되지 않습니다.
게임 키트를 사용하여 기본 회전 기반 게임을 구현했습니다. 플레이어는 다른
+ (void)findMatchForRequest:(GKMatchRequest *)request withCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandler
초대 끝
- (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
두 번째 선수가 받아 전원을 켜고 게임이 시작됩니다. 두 번째 플레이어는 자신의 턴을했다 후에 그는 모든 것이 잘 작동
- (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
등등 ...
선수도 사용자 정의 메시지로 알림을 수신 설정 끝납니다.
앱 (다른 플레이어)이 백그라운드에서 알림 배너를 탭하여 앱을 시작한 경우에도 작동합니다.
앱이 기기에서 백그라운드로 실행되고 다른 기기가 회전을 끝내면 문제가 발생합니다. 첫 번째 기기는 회전에 대한 알림을 받지만 앱을 시작하면 (알림 배너를 탭하지 않고 수동으로)로드를 검색하여 이전 일치 데이터를 얻습니다.
+ (void)loadMatchesWithCompletionHandler:(void (^)(NSArray *matches, NSError *error))completionHandler
내 앱에 게임 데이터를 저장하지 않고 일시적인 개체 만 유지합니다. 두 장치에서 응용 프로그램을 닫고 다시 일치를 시도했습니다. 그들은 게임 센터의 서버와 다른 일치 데이터를 얻습니다. 그 중 하나는 이전 데이터를 가져오고 다른 하나는 차례를 마친 업데이트 된 일치 데이터를 가져옵니다.
다음과 같은 방법으로 시도해 보았지만 작동하지만 그걸로 끝낼 수는 없습니다.
- (void)saveCurrentTurnWithMatchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler
나는 시뮬레이터를 사용하지 않지만 장치 만 테스트합니다. SDK 6.1, iOS 6.0.1 및 물론 샌드 박스.