GKMatchmaker
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в iOS 4.1 и позже.
GKMatchmaker
класс используется, чтобы программно создать соответствия к другим проигрывателям и получить приглашения соответствия, отправленные другими проигрывателями.
Соответствия могут быть или одноранговыми или размещены. Одноранговое соответствие полностью поддерживается в Гэйме Ките GKMatch
класс. A GKMatch
объект обеспечивает все сетевые соединения между устройствами и направляет сетевые данные через Игровой Центр при необходимости. Напротив, размещенное соответствие использует matchmaking для нахождения проигрывателей для соответствия, но игра реализует свои собственные сети между участниками, направляющими через собственный сервер при необходимости.
Для получения приглашений из других проигрывателей игра должна обеспечить обработчик приглашения. После того, как Ваша игра успешно аутентифицирует местного игрока, она должна сразу установить inviteHandler
свойство. Если Ваша игра была запущена в ответ на уведомление нажатия, пригласить обработчик сразу вызывают.
Чтобы программно искать другие проигрыватели запустите путем создания a GKMatchRequest
объект, описывающий соответствие, которым Вы интересуетесь. Затем вызовите совместно используемого антрепренера findMatchForRequest:withCompletionHandler:
метод для создания однорангового соответствия или findPlayersForHostedMatchRequest:withCompletionHandler:
метод для создания размещенного соответствия. В любом случае Игровой Центр соответствует проигрыватели в соответствие и вызывает Ваш обработчик завершения. Если соответствие не имеет достаточного количества проигрывателей (например, Вы пригласили определенный список проигрывателей, и некоторые отклонили приглашение), можно создать другой запрос соответствия и вызвать addPlayersToMatch:matchRequest:completionHandler:
метод для добавления большего количества участников к соответствию. Как только соответствие завершено, вызовите finishMatchmakingForMatch:
метод.
Если Вы реализуете программируемый matchmaking и приглашаете определенные проигрыватели в соответствие, необходимо также реализовать обработчик ответа приглашенного. Этот обработчик уведомляется, поскольку приглашения обрабатываются, позволяя Вам обновить настроенный пользовательский интерфейс Вашей игры для отображения, какие плееры подключаются к соответствию.
-
Возвращает одноэлементного антрепренера экземпляр.
Объявление
Swift
class func sharedMatchmaker() -> GKMatchmaker!
Objective C
+ (GKMatchmaker *)sharedMatchmaker
Возвращаемое значение
Совместно используемый экземпляр антрепренера.
Обсуждение
Игры не создают a
GKMatchmaker
объект. Вместо этого они получают совместно используемый одиночный элемент путем вызова этого метода.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.0 и позже.
-
Создает соответствие из принятого приглашения.
Объявление
Параметры
invite
Приглашение принято проигрывателем.
completionHandler
Блок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
match
Если соответствие успешно создавалось, этот параметр содержит создаваемое соответствие. Иначе, этот параметр
nil
.error
Если соответствие успешно создавалось, этот параметр содержит
nil
. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
При использовании этого метода для создания соответствия игра должна вывести на экран свой собственный пользовательский интерфейс, чтобы сообщить проигрывателю, что он или она был подключен к соответствию.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 6.0 и позже.
См. также
-
Блок, который вызовут, когда приглашение присоединиться к соответствию принято местным игроком.
Объявление
Обсуждение
Блок берет следующие параметры:
acceptedInvite
Приглашение принято проигрывателем.
playerIDsToInvite
Массив
NSString
объекты, содержащие идентификаторы проигрывателя для дополнительных проигрывателей для приглашения в игру.Ваш блок должен реагировать на приглашение одним из двух способов:
Выведите на экран стандартный пользовательский интерфейс путем инициализации нового
GKMatchmakerViewController
объект, передавая объект приглашения и список идентификаторов проигрывателя как параметры.Создайте соответствие программно путем вызова
matchForInvite:completionHandler:
метод на совместно используемом экземпляре антрепренера.
Если Ваша игра получает приглашение, в то время как она уже работает, она должна перейти к многопользовательской игре. Это должно очистить любое существующее содержание, такое как заканчивание текущего матча, который играет проигрыватель, и затем обработайте приглашение.
Оператор импорта
Objective C
@import GameKit;
Доступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 7.0.
-
addPlayersToMatch (_: matchRequest:completionHandler:) - addPlayersToMatch:matchRequest:completionHandler:
Добавляют проигрыватели к существующему соответствию.
Объявление
Swift
func addPlayersToMatch(_
match
: GKMatch!, matchRequestmatchRequest
: GKMatchRequest!, completionHandlercompletionHandler
: ((NSError!) -> Void)!)Objective C
- (void)addPlayersToMatch:(GKMatch *)
match
matchRequest:(GKMatchRequest *)matchRequest
completionHandler:(void (^)(NSError *error))completionHandler
Параметры
match
Ранее создаваемое соответствие.
matchRequest
Параметры для нового запроса соответствия.
completionHandler
Блок, который вызовут, когда завершается matchmaking.
Блок берет следующий параметр:
error
Если matchmaking был успешен, этот параметр содержит
nil
. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Этот метод обновляет существующий объект соответствия путем добавления дополнительных проигрывателей.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.0 и позже.
-
Отменяет ожидание matchmaking запрос.
Объявление
Swift
func cancel()
Objective C
- (void)cancel
Обсуждение
Обработчик завершения получает обратный вызов с a
GKErrorCancelled
ошибка.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.0 и позже.
-
Отменяет незаконченное приглашение на другой проигрыватель.
Объявление
Swift
func cancelPendingInviteToPlayer(_
player
: GKPlayer!)Objective C
- (void)cancelPendingInviteToPlayer:(GKPlayer *)
player
Параметры
player
GKPlayer
объект, идентифицирующий проигрыватель, ранее приглашенный в соответствие.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 8.0 и позже.
-
Подает заявку для нахождения проигрывателей для однорангового соответствия.
Объявление
Swift
func findMatchForRequest(_
request
: GKMatchRequest!, withCompletionHandlercompletionHandler
: ((GKMatch!, NSError!) -> Void)!)Objective C
- (void)findMatchForRequest:(GKMatchRequest *)
request
withCompletionHandler:(void (^)(GKMatch *match, NSError *error))completionHandler
Параметры
request
Конфигурация для желаемого соответствия.
completionHandler
Блок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
match
Если matchmaking был успешен, этот параметр содержит создаваемое соответствие. Иначе, этот параметр
nil
.error
Если matchmaking был успешен, этот параметр содержит
nil
. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
На iOS 6, если запрос соответствия
playersToInvite
свойство не -NIL
, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInvite
свойствоNIL
, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. Если Ваша игра хочет выполнить программируемый matchmaking для остающихся слотов, это должно вызватьaddPlayersToMatch:matchRequest:completionHandler:
метод с соответствием запрашивает чейplayersToInvite
свойствоNIL
.До iOS 6, запрос соответствия
playersToInvite
свойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.1 и позже.
См. также
-
findPlayersForHostedRequest (_: withCompletionHandler:) - findPlayersForHostedRequest:withCompletionHandler:
Подает заявку для нахождения проигрывателей для размещенного соответствия.
Объявление
Swift
func findPlayersForHostedRequest(_
request
: GKMatchRequest!, withCompletionHandlercompletionHandler
: (([AnyObject]!, NSError!) -> Void)!)Objective C
- (void)findPlayersForHostedRequest:(GKMatchRequest *)
request
withCompletionHandler:(void (^)(NSArray *players, NSError *error))completionHandler
Параметры
request
Конфигурация для желаемого соответствия.
completionHandler
Блок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
players
Если matchmaking был успешен, этот параметр содержит массив
GKPlayer
объекты, содержащие проигрыватели для соединения в соответствие. Иначе, этот параметрnil
.error
Если matchmaking был успешен, этот параметр содержит
nil
. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке. Когда Ваш обработчик завершения вызывают, Ваша игра должна подключить те плееры к Вашему собственному серверу.
На iOS 6, если запрос соответствия
playersToInvite
свойство не -NIL
, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInvite
свойствоNIL
, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. До iOS 6, запрос соответствияplayersToInvite
свойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 8.0 и позже.
-
Сообщает Игровому Центру, что закончился программируемый matchmaking.
Объявление
Swift
func finishMatchmakingForMatch(_
match
: GKMatch!)Objective C
- (void)finishMatchmakingForMatch:(GKMatch *)
match
Параметры
match
Соответствие, завершившее процесс matchmaking.
Обсуждение
Если Ваша игра использует программируемый matchmaking, она делает серию вызовов к
findMatchForRequest:withCompletionHandler:
иaddPlayersToMatch:matchRequest:completionHandler:
методы для заполнения соответствия проигрывателями. Когда соответствие будет иметь надлежащее число игроков, вызовитеfinishMatchmakingForMatch:
метод прежде, чем начать матч.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 6.0 и позже.
-
Инициирует поиск действия во всех группах проигрывателя.
Объявление
Параметры
completionHandler
Блок, берущий следующие параметры:
activity
Число соответствия запрашивает на все группы проигрывателя в течение предыдущих 60 секунд.
error
Если поиск завершился успешно, этот параметр
nil
; иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Запрос позволяет Вашей игре видеть, сколько проигрывателей недавно искало соответствие через все группы проигрывателя.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.1 и позже.
-
queryPlayerGroupActivity (_: withCompletionHandler:) - queryPlayerGroupActivity:withCompletionHandler:
Игровой Центр запросов действия в группе проигрывателя.
Объявление
Swift
func queryPlayerGroupActivity(_
playerGroup
: Int, withCompletionHandlercompletionHandler
: ((Int, NSError!) -> Void)!)Objective C
- (void)queryPlayerGroupActivity:(NSUInteger)
playerGroup
withCompletionHandler:(void (^)(NSInteger activity, NSError *error))completionHandler
Параметры
playerGroup
Число, однозначно определяющее подмножество игроков Вашей игры.
completionHandler
Блок, который вызывают, когда завершается поиск. Блок берет следующие параметры:
activity
Число соответствия запрашивает на группу проигрывателя в течение предыдущих 60 секунд.
error
Если поиск завершился успешно, этот параметр
nil
; иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Запрос позволяет Вашей игре видеть, сколько проигрывателей недавно искало соответствие. В результате можно представить пользовательский интерфейс, показывающий относительное действие в каждой группе проигрывателя. Например, если одна группа видит меньше действия, чем другие, Вы могли бы вывести на экран предупреждение так, чтобы проигрыватели знали, что нахождение соответствия может занять больше времени.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.0 и позже.
-
Отменяет незаконченное приглашение на другой проигрыватель.
Объявление
Swift
func cancelInviteToPlayer(_
playerID
: String!)Objective C
- (void)cancelInviteToPlayer:(NSString *)
playerID
Параметры
playerID
Идентификатор проигрывателя для проигрывателя, ранее приглашенного в соответствие.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 6.0 и позже.
Осуждаемый в iOS 8.0.
-
findPlayersForHostedMatchRequest (_: withCompletionHandler:) - findPlayersForHostedMatchRequest:withCompletionHandler:
(iOS 8.0)Подает заявку для нахождения проигрывателей для размещенного соответствия.
Объявление
Swift
func findPlayersForHostedMatchRequest(_
request
: GKMatchRequest!, withCompletionHandlercompletionHandler
: (([AnyObject]!, NSError!) -> Void)!)Objective C
- (void)findPlayersForHostedMatchRequest:(GKMatchRequest *)
request
withCompletionHandler:(void (^)(NSArray *playerIDs, NSError *error))completionHandler
Параметры
request
Конфигурация для желаемого соответствия.
completionHandler
Блок, который вызовут, когда было создано соответствие. Этот блок получает следующие параметры:
playerIDs
Если matchmaking был успешен, этот параметр содержит массив
NSString
объекты, содержащие проигрыватели для соединения в соответствие. Иначе, этот параметрnil
.error
Если matchmaking был успешен, этот параметр содержит
nil
. Иначе, этот параметр содержит ошибочный объект, описывающий произошедшую ошибку.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке. Когда Ваш обработчик завершения вызывают, Ваша игра должна подключить те плееры к Вашему собственному серверу.
На iOS 6, если запрос соответствия
playersToInvite
свойство не -NIL
, Игровой Центр отсылает приглашения только в проигрыватели, перечисленные в свойстве. ЕслиplayersToInvite
свойствоNIL
, тогда это ищет любые проигрыватели ожидания, соответствующие запрос. До iOS 6, запрос соответствияplayersToInvite
свойство проигнорировано, и этот метод только ищет доступные проигрыватели.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 4.1 и позже.
Осуждаемый в iOS 8.0.
См. также
-
Позволяет процессу matchmaking найти соседние проигрыватели через Bluetooth или WiFi (только та же подсеть).
Объявление
Swift
func startBrowsingForNearbyPlayersWithHandler(_
reachableHandler
: ((GKPlayer!, Bool) -> Void)!)Objective C
- (void)startBrowsingForNearbyPlayersWithHandler:(void (^)(GKPlayer *player, BOOL reachable))
reachableHandler
Параметры
reachableHandler
Когда достижимость для проигрывателя изменяется, блок вызвал. Блок берет следующие параметры:
player
GKPlayer
объект, идентифицирующий проигрыватель, состояние достижимости которого изменилось.reachable
YES
true
если новый проигрыватель был обнаружен локально,NO
false
если исчез ранее обнаруженный проигрыватель.Обсуждение
Вы только используете этот метод при реализации программируемого matchmaking. После включения просмотра для соседних проигрывателей используйте ответы для заполнения пользовательского интерфейса с информацией о соседних проигрывателях. Если проигрыватель хочет пригласить проигрыватель в игру, добавьте, что идентификатор проигрывателя проигрывателя к запросу соответствия и вызывает любого
findMatchForRequest:withCompletionHandler:
создать соответствие илиaddPlayersToMatch:matchRequest:completionHandler:
метод для обновления соответствия.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 8.0 и позже.
-
Заканчивает поиск соседних проигрывателей.
Объявление
Swift
func stopBrowsingForNearbyPlayers()
Objective C
- (void)stopBrowsingForNearbyPlayers
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 6.0 и позже.
-
startBrowsingForNearbyPlayersWithReachableHandler (_:) - startBrowsingForNearbyPlayersWithReachableHandler:
(iOS 8.0)Позволяет процессу matchmaking найти соседние проигрыватели через Bluetooth или WiFi (только та же подсеть).
Объявление
Swift
func startBrowsingForNearbyPlayersWithReachableHandler(_
reachableHandler
: ((String!, Bool) -> Void)!)Objective C
- (void)startBrowsingForNearbyPlayersWithReachableHandler:(void (^)(NSString *playerID, BOOL reachable))
reachableHandler
Параметры
reachableHandler
Когда достижимость для проигрывателя изменяется, блок вызвал. Блок берет следующие параметры:
playerID
Идентификатор проигрывателя для проигрывателя, состояние достижимости которого изменилось.
reachable
YES
true
если новый проигрыватель был обнаружен локально,NO
false
если исчез ранее обнаруженный проигрыватель.Обсуждение
Вы только используете этот метод при реализации программируемого matchmaking. После включения просмотра для соседних проигрывателей используйте ответы для заполнения пользовательского интерфейса с информацией о соседних проигрывателях. Если проигрыватель хочет пригласить проигрыватель в игру, добавьте, что идентификатор проигрывателя проигрывателя к запросу соответствия и вызывает любого
findMatchForRequest:withCompletionHandler:
создать соответствие илиaddPlayersToMatch:matchRequest:completionHandler:
метод для обновления соответствия.Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 6.0 и позже.
Осуждаемый в iOS 8.0.