Я пытаюсь внедрить приглашения с помощью Game Center и есть одна вещь, которую я не понимаю. Хорошо, я отправил приглашение с одного устройства на другое. Затем у меня есть UIAlertView на приемнике, который спрашивает меня, хочу ли я принять или отклонить приглашение. когда я его принимаю, он обрабатывается следующим образом:
[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite)
{
// Insert application-specific code here to clean up any games in progress.
if (acceptedInvite)
{
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
}
else if (playersToInvite)
{
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 4;
request.playersToInvite = playersToInvite;
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
}
};
Ну, это здорово, но что дальше? устройство-отправитель, очевидно, ожидает какого-то стандартного ответа, потому что оно также показывает предупреждение о том, что на некоторые приглашения еще не ответили, если я нажму «Играть сейчас».
Итак, как мне принять приглашение? Какие данные (и как) я должен отправить обратно? И что именно я должен сделать на стороне получателя? Должна ли игра запускаться сразу после нажатия «Принять» или мне следует сначала закрыть AlertView, а затем нажать «Играть сейчас»?
В руководстве Рэя Вендерлихаговорится, что я должен выбрать второй способ, но когда я отклоняю предупреждение и нажимаю «Играть сейчас», оказывается, что отправляющее устройство все еще ожидает ответа и не знает, что я уже принял приглашение. если я нажму «Играть сейчас» в этот момент, то, как я уже сказал выше, появится предупреждение, в котором говорится, что приложение ожидает ответа. Так что, если вы когда-либо делали это, пожалуйста, объясните мне, что мне делать.Спасибо!