Этот пост о получении приглашения, а не об его отправке.

даю игру для iPhone, в которой используется Game Center, и мне трудно понять, как начать игру, которая началась с получения приглашения от друга.документы скажи это...

Параметр acceptInvite не равен nil, когда приложение получает приглашение непосредственно от другого игрока. В этой ситуации приложение другого игрока уже создало запрос на совпадение, поэтому для этой копии вашего приложения не нужно его создавать.

В соответствии с этим мне не нужно создавать запрос на совпадение, так как игрок, который сделал приглашение, уже создал его. Если да, как мне получить объект GKMatch, необходимый для отправки / получения данных от другого игрока? Единственный известный мне способ получить объект GKMatch - создать запрос на совпадение и вызватьfindMatchForRequest метод, который, как говорят доктора, я не должен делать.

Единственный пример кода, который у них есть для этого, включает создание и использованиеGKMatchmakerViewController, который я не могу использовать, так как я создаю свои собственные пользовательские представления.

Большое спасибо за вашу мудрость!

Ответы на вопрос(3)

Решение Вопроса

что сказал инженер Apple, давайте попробуем пригласить что-то вроде этого, не используя пользовательское представление:

[[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {



[GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) {
    for (GKPlayer *player in players) {
        NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way
    }
}];

}];

Теперь, если пользователь выбирает игроков из этого списка в пользовательском представлении, у GKMatchRequest есть свойство PlayersToInvite, и мы можем установить для этих игроков это свойство. И создайте совпадение программно, используя этот запрос.

Это выглядит очень возможно, но я не пробовал, если честно

 livingtech31 янв. 2013 г., 16:22
Этот пост о получении приглашения, а не об его отправке.

ледуйте этим шагам:
1- убедитесь, что ваши push-уведомления включены в настройках, а приглашения друзей включены в настройках учетной записи игрового центра.
2-теперь установите последнюю версию игры Fruit Ninja
3-откройте игровой центр и войдите, затем поместите его в фоновом режиме.
Фруктовый ниндзя с четырьмя открытыми игроками.
5 - теперь вы увидите два варианта (пригласить друга и играть сейчас в правом верхнем углу)
6 Нажмите кнопку «Играть сейчас», чтобы игровой центр нашел для вас незваную игру.
7-когда игра начинается, и вы можете увидеть имя вашего незваного друга в правом верхнем углу. После того, как игра закончится, перейдите непосредственно к игровому центру в фоновом режиме и в разделе игр и перейдите к фруктовым ниндзя в списке игр. Здесь вы увидите недавно сыгранную опцию, Touch it. Здесь вы увидите вверху списка имя игрока (с кем вы играли), коснитесь имени и немедленно отправите ему запрос на добавление в друзья.
8-если он примет запрос goto friends => (ваш недавно добавленный друг) => играется вместе (фруктовый ниндзя) => игра по хитам (вверху справа)
9-сейчас игра откроется, и вы увидите страницу GC. Нажмите кнопку приглашения и выберите недавно добавленного друга, а затем отправьте, ожидая его и готовясь к игре.

Теперь ваш gc id подтвержден, и вы можете пригласить любого из своих друзей и играть в любую игру (которая поддерживает функцию приглашения)

 livingtech31 янв. 2013 г., 16:21
Это не связано с вопросом ОП.
Решение Вопроса

вот что он сказал ...

Вы можете выполнить автоматическое сопоставление с пользовательскими представлениями, но невозможно использовать приглашения без использования GKMatchmakerViewController. Таким образом, вы должны следовать примеру кода.

Я предполагаю, что просто должен произойти радикальный разрыв в согласованности моего интерфейса.

 Kris Giesing19 мар. 2012 г., 05:29
Carcassonne каким-то образом использует пользовательское представление, которое поддерживает использование приглашений GameCenter. До сих пор я не мог понять, как, хотя, и собирался опубликовать свой собственный вопрос, когда я столкнулся с этим. Так что я думаю, что здесь есть нечто большее, чем Apple, но, к сожалению, я не могу восполнить недостающую часть.
 livingtech31 янв. 2013 г., 16:23
Кстати, вы знаете, на какой пример кода ссылался инженер?
 Joseph Tura24 янв. 2011 г., 09:26
Вам когда-нибудь удавалось получить приглашения на работу, ДАЖЕ С GKMatchMakerViewController? На форумах разработчиков iPhone есть куча сообщений, в которых жалуются, что приглашения не работают должным образом.
 livingtech31 янв. 2013 г., 16:22
Настолько расстраивает, что это, похоже, не поддерживается!

Ваш ответ на вопрос