Джон,
При нажатии кнопки «Домой» делегат приложения получает ответный вызов -(void)applicationDidEnterBackground:(UIApplication*)application
.
У вас есть примерно 5 секунд (до того, как Springboard убьет ваше приложение), чтобы сделать все, что вам нужно, чтобы очистить свое приложение (если вам не нужно больше времени, которое вы можете запросить у iOS, но не гарантированно получите).
Как ты "убираешься"? Как вы упомянули, в вашем матче 2 игрока, поэтому отсоединение или выход из игры одного и того же игрока влияет на игру - завершение игры (при условии, что игрок не может продолжать играть сам).
Ваш уходящий игрок отправит сообщение -disconnect
в GameKit.
Игрок, оставленный позади программы, должен иметь объект, соответствующий протоколу GKMatchDelegate и получающий обратные вызовы в качестве делегата GKMatch
.
Когда противоборствующий игрок отключается, GKMatch вызывает делегата с:
- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state`
Итак, теперь ваш игрок, который остался за кодом, также будет уведомлен. В этом методе проверьте, не отключено ли это, и если да, следуйте своей собственной логике того, что вы хотите сделать, когда игрок «зациклен».