If my understanding is correct, the only way to update the matchData property for GKTurnBasedMatch in the middle of the turn is [_currentMatch endTurnWithNextParticipant: _currentParticipant matchData: matchData completeHandler: nil].
This works well if the Game Center only has the game installed on one device, because the notification is delivered to the device as a message in the application. Thus, the notification can be hidden while the user is currently playing a turn. However, if the user has installed the game on several devices, other devices will receive a âYour Turnâ push notification. This confuses the user, especially I update matchData several times.
By the way, I understand that I cannot use the endTurnWithNextParticipant: matchData: completeHandler: function because it was intended (because I am not actually ending the match ... but just updating matchData). However, there seems to be no alternative to updating the match state in the middle of the turn.
source share