Обновление matchData в GKTurnBasedMatch без завершения хода

Похоже, что GameKit позволяет обновлять GKTurnBasedMatch только один раз при загрузке GKTurnBasedMatch с серверов Game Center. Есть ли другой способ обновить свойство matchData?


person codeperson    schedule 12.12.2011    source источник


Ответы (2)


Следующий метод был добавлен в GKTurnBasedMatch в iOS 6.0 и будет делать то, что вам нужно:

- (void)saveCurrentTurnWithMatchData:(NSData *)matchData
                   completionHandler:(void (^)(NSError *error))completionHandler

"Обновить данные матча, не переходя к игре другому игроку"

person johngirvin    schedule 18.02.2013
comment
Обратите внимание, что это вызывает push-уведомление для противников, даже если ход текущего игрока еще не закончился! См. >эта тема. - person todd412; 06.04.2013

Вы можете позвонить `-

[GKTurnBasedMatch (void)loadMatchDataWithCompletionHandler:(void (^)(NSData *matchData, NSError *error))completionHandler];

так часто, как вы хотите получать обновленные данные matchData. Если вы хотите делать пошаговые шаги, вы также можете сделать -

[GKTunrBasedMatch - (void)endTurnWithNextParticipant:(GKTurnBasedParticipant *)nextParticipant matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler];

со своим участником в качестве следующего участника. Однако вы должны загрузитьMatchDataWithCompletionhandler: еще раз после того, как вы отправили свой частичный ход, прежде чем вам будет разрешено отправить следующую часть хода.

person monkeydom    schedule 13.02.2012