GKTurnBasedMatch
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в iOS 5.0 и позже.
GKTurnBasedMatch класс позволяет Вашей игре реализовывать основанные на повороте соответствия между наборами проигрывателей на Игровом Центре. Основанное на повороте соответствие использует подход промежуточной буферизации для совместного использования данных между участниками. Когда проигрыватель, участвующий в соответствии, выполняет действия, совершенствующие состояние соответствия, Ваша игра описывает новое состояние соответствия и решает, какой проигрыватель действует затем. Следующий проигрыватель, который будет действовать, уведомляется уведомлением нажатия. Позже, когда следующий проигрыватель запускает Вашу игру, Вы загружаете данные соответствия с Игрового Центра и продолжаете соответствие. Проигрыватели сменяются, действуя (на основе любой внутренней логики Ваши игровые реализации), пока не заканчивается матч. Одно преимущество основанных на повороте соответствий состоит в том, что проигрыватель может участвовать в многократных соответствиях одновременно.
Ваша игра никогда непосредственно создает GKTurnBasedMatch объекты, потому что соответствие всегда представляет существующее соответствие, которое сохранено Гэймом Сентером. Вместо этого объекты соответствия создаются для Вашей игры Гэймом Китом. Объект соответствия может содержать недавно создаваемое соответствие (для соответствия, еще не запустившегося), или соответствие, идущее уже полным ходом. Вот способы, которыми Ваша игра получает объекты соответствия:
Чтобы позволить проигрывателю видеть стандартный пользовательский интерфейс для основанных на повороте соответствий, используйте
GKTurnBasedMatchmakerViewControllerкласс.Чтобы программно найти, что новое соответствие для проигрывателя присоединяется, вызовите
findMatchForRequest:withCompletionHandler:метод класса.Чтобы программно загрузить набор объектов соответствия для соответствий, местный игрок уже участвует в, вызовите
loadMatchesWithCompletionHandler:метод класса.Для получения уведомлений, когда это будет очередь местного игрока в соответствии использовать
GKTurnBasedEventListener.
Объект соответствия содержит несколько существенных свойств:
participantsсвойство содержит массивGKTurnBasedParticipantобъекты. Каждый идентифицирует проигрыватель в соответствии вместе с текущим статусом того проигрывателя.currentParticipantсвойство содержитGKTurnBasedParticipantобъект для проигрывателя, кто должен действовать для усовершенствования состояния соответствия.matchDataсвойство содержит двоичных данных, который описывает текущее состояние соответствия. Формат данных, содержавшихся в этом объекте, является чем-то, что Вы разрабатываете при создании игры; Гэйм Кит только управляет хранением и передачей этих данных.
Когда проигрыватель просматривает определенное соответствие, Ваша игра должна взять соответствие, возражают и вызывают loadMatchDataWithCompletionHandler: метод для получения данных соответствия. После того, как данные соответствия загружаются с Игрового Центра, Ваша игра анализирует данные и выводит на экран пользовательский интерфейс игры. Проигрыватель может хотеть просмотреть соответствие, даже когда это - очередь другого проигрывателя действовать; Ваша игра должна ожидать это и позволить проигрывателю просматривать состояние соответствия, не позволяя им действовать. Когда текущий проигрыватель просматривает соответствие, Ваша игра должна и показать им состояние соответствия и обеспечить пользовательский интерфейс, чтобы позволить проигрывателю принимать оборот. Текущий проигрыватель, как ожидают, выполнит действия, изменяющие состояние соответствия. Эти действия основываются на внутренней логике правил Вашей игры. Проигрыватель продолжает действовать, пока он или она не принимает меры, требующие, чтобы другое лицо в соответствии действовало, для усовершенствования соответствия. Например, в игре как Шахматы, передвигая фигуру на плате и передавая управление другому участнику происходят одновременно. Более сложная игра могла бы позволить текущему проигрывателю принимать многократные меры, прежде чем соответствие достигнет состояния, в котором контроль уступается другому проигрывателю.
Если проигрыватель принимает меры, которые являются безотзывными (но управление еще не передается к другому проигрывателю), Вы обновляете данные соответствия путем вызова saveCurrentTurnWithMatchData:completionHandler: метод.
Как только проигрыватель принимает меры, требующие, чтобы другой проигрыватель действовал, Ваша игра должна определить, какой проигрыватель должен действовать затем. Затем это должно закодировать состояние соответствия в NSData возразите и вызовите объект соответствия endTurnWithNextParticipants:turnTimeout:matchData:completionHandler: метод для установки следующего проигрывателя, который будет действовать. Следующему проигрывателю автоматически сообщают, что соответствие ожидает на его или ее действиях для продолжения соответствия.
В то время как соответствие развивается, проигрыватели могут оставить соответствие. Например, эта ситуация могла бы произойти, если Ваша игра решает, что этот проигрыватель был устранен из соответствия. Или Ваша игра могла бы предложить пользовательский интерфейс, чтобы позволить проигрывателям уходить из соответствий. Если местный игрок уходит из соответствия и является также текущим проигрывателем соответствия, Ваша игра должна вызвать объект соответствия participantQuitInTurnWithOutcome:nextParticipant:matchData:completionHandler: метод. Когда проигрыватель принимает оборот, Ваши игровые передачи в состоянии соответствия и следующего проигрывателя для действия, поскольку это делает. Ваша игра также обеспечивает результат соответствия — по существу, численное значение, указывающее причину, почему тот проигрыватель оставил соответствие. Если Ваша игра позволяет проигрывателям уходить из соответствий, когда не случается так, что очередь проигрывателя, Ваша игра вызывает объект соответствия participantQuitOutOfTurnWithOutcome:withCompletionHandler: метод, чтобы позволить проигрывателю оставлять соответствие.
В конечном счете матч заканчивается. Когда Ваша игровая логика диктует, что матч должен закончиться, Ваша игра вызывает объект соответствия endMatchInTurnWithMatchData:completionHandler: метод. Ваша игра должна гарантировать, чтобы у всех участников соответствия был допустимый результат соответствия прежде, чем закончить матч.
Даже после того, как матч заканчивается, его данные все еще хранятся на Игровом Центре; это позволяет проигрывателям просматривать предыдущие победы и поражения. Проигрыватель может принять решение удалить соответствие с помощью стандартного пользовательского интерфейса, но игра может также программно удалить соответствие путем вызова объекта соответствия removeWithCompletionHandler: метод. Во всех случаях решение удалить соответствие должно быть принято проигрывателем; removeWithCompletionHandler: метод существует, чтобы позволить Вашей игре представлять настроенный пользовательский интерфейс для просмотра и работы с соответствиями.
Разделение на подклассы примечаний
GKTurnBasedMatch класс не может быть разделен на подклассы.
-
Загружает основанные на повороте соответствия, вовлекающие местного игрока, и создает объект соответствия для каждого соответствия.
Объявление
Swift
class func loadMatchesWithCompletionHandler(_completionHandler: (([AnyObject]!, NSError!) -> Void)!)Параметры
completionHandlerБлок, который вызовут после соответствий, получен от сервера.
Блок получает следующие параметры:
matchesМассив
GKTurnBasedОбъекты соответствия, содержащие соответствие, возражают для соответствий, что местный игрок играет в, илиnilпри отсутствии соответствий для загрузки. Если ошибка произошла, это значение может быть не -nil. В этом случае массив содержит любые данные соответствия, мог быть получен от Игрового Центра, прежде чем произошла ошибка.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Загружает определенное соответствие.
Объявление
Swift
class func loadMatchWithID(_matchID: String!, withCompletionHandlercompletionHandler: ((GKTurnBasedMatch!, NSError!) -> Void)!)Параметры
matchIDИдентификатор для основанного на повороте соответствия.
completionHandlerБлок, который вызовут после соответствия, получен от сервера.
Блок получает следующие параметры:
matchЕсли работа завершилась успешно, этот параметр содержит соответствие. Если ошибка произошла, значение
nil.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Программно поиски нового соответствия для присоединения.
Объявление
Swift
class func findMatchForRequest(_request: GKMatchRequest!, withCompletionHandlercompletionHandler: ((GKTurnBasedMatch!, NSError!) -> Void)!)Objective C
+ (void)findMatchForRequest:(GKMatchRequest *)requestwithCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandlerПараметры
requestЗапрос соответствия, указывающий свойства, которые должно выполнить новое соответствие.
completionHandlerБлок, который вызовут после соответствия, успешно создается.
Блок получает следующие параметры:
matchНедавно инициализированный объект соответствия, содержащий список проигрывателей для соответствия. Если ошибка произошла, это значение
nil.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Этот метод может или создать новое соответствие, или он может поместить проигрыватель в существующее соответствие, которому нужен новый проигрыватель для усовершенствования соответствия далее. Независимо от того, как проигрыватель помещается в соответствие, местный игрок всегда является текущим участником возвращенного соответствия. Ваша игра должна сразу вывести на экран соответствие в своем пользовательском интерфейсе и позволить проигрывателю принимать оборот.
Быть соответствующим более старым серверам и версиям iOS, минимальное число игроков, указанное
GKMatchRequestобъект установлен быть равным максимальному количеству проигрывателей при поиске соответствия.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Программно примите приглашение на основанное на повороте соответствие.
Объявление
Swift
func acceptInviteWithCompletionHandler(_completionHandler: ((GKTurnBasedMatch!, NSError!) -> Void)!)Objective C
- (void)acceptInviteWithCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandlerПараметры
completionHandlerБлок, который вызовут после соответствия, успешно создается.
Блок получает следующие параметры:
matchНедавно инициализированный объект соответствия, содержащий список проигрывателей для соответствия. Если ошибка произошла, это значение
nil.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Программно отклоните приглашение к основанному на повороте соответствию.
Объявление
Swift
func declineInviteWithCompletionHandler(_completionHandler: ((NSError!) -> Void)!)Objective C
- (void)declineInviteWithCompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
completionHandlerБлок, который вызовут после соответствия, успешно создается.
Блок получает следующий параметр:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Создайте новое основанное на повороте соответствие с теми же участниками как существующее соответствие.
Объявление
Swift
func rematchWithCompletionHandler(_completionHandler: ((GKTurnBasedMatch!, NSError!) -> Void)!)Objective C
- (void)rematchWithCompletionHandler:(void (^)(GKTurnBasedMatch *match, NSError *error))completionHandlerПараметры
completionHandlerБлок, который вызовут после соответствия, успешно создается.
Блок получает следующие параметры:
matchНедавно инициализированный объект соответствия, содержащий список проигрывателей для соответствия. Если ошибка произошла, это значение
nil.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
creationDateСвойство -
currentParticipantСвойствоУчастник, поворот которого это должно действовать затем. (только для чтения)
Объявление
Swift
var currentParticipant: GKTurnBasedParticipant! { get }Objective C
@property(readonly, retain, nonatomic) GKTurnBasedParticipant *currentParticipantОбсуждение
Текущий участник является единственным участником, которому разрешают обновить данные соответствия.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
matchIDСвойствоСтрока, однозначно определяющая соответствие. (только для чтения)
Объявление
Swift
var matchID: String! { get }Objective C
@property(readonly, retain, nonatomic) NSString *matchIDОбсуждение
Эта строка не предназначается, чтобы быть выведенной на экран к проигрывателям. Ваша игра должна использовать эту строку каждый раз, когда это должно идентифицировать определенное соответствие. Например, если Вы хотите, чтобы Ваша игра хранила дополнительную информацию на устройстве или в iCloud, это могло бы сохранить его в базе данных с помощью соответствия ID в качестве ключа.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
messageСвойствоСообщение, выведенное на экран ко всем проигрывателям в соответствии.
Объявление
Swift
var message: String!Objective C
@property(readwrite, copy, nonatomic) NSString *messageОбсуждение
messageсвойство выведено на экран стандартным пользовательским интерфейсом; это позволяет Вашей игре использовать сообщение для информирования игроков текущего состояния соответствия.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
participantsСвойствоИнформация о проигрывателях, участвующих в соответствии. (только для чтения)
Объявление
Swift
var participants: [AnyObject]! { get }Objective C
@property(readonly, retain, nonatomic) NSArray *participantsОбсуждение
Элементы этого массива
GKTurnBasedParticipantобъекты, представляющие каждого участника соответствия. Ваша игра использует эти объекты получить больше информации об участниках соответствия. Ваша игра также использует один из объектов в этом массиве в качестве параметра каждый раз, когда это вызывает метод, устанавливающий различного участника для действия в соответствии.Размер массива и порядка, в котором участники появляются в массиве, установлен, когда соответствие сначала создается, и никогда не изменяется. Когда соответствие сначала создается, некоторые участники еще могут не содержать фактические проигрыватели. Игровой Центр ищет проигрыватель для заполнения того спота в соответствии только после игровых наборов что участник в качестве текущего проигрывателя.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
statusСвойствоТекущее состояние соответствия. (только для чтения)
Объявление
Swift
var status: GKTurnBasedMatchStatus { get }Objective C
@property(readonly, nonatomic) GKTurnBasedMatchStatus statusОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
matchDataMaximumSizeСвойствоВозвращает предел Игровое место серверов Центра на размере данных соответствия. (только для чтения)
Объявление
Swift
var matchDataMaximumSize: Int { get }Objective C
@property(readonly, nonatomic) NSUInteger matchDataMaximumSizeОбсуждение
Если Ваша игра отправляет обновленные данные, больше, чем это значение, игровой Набор возвращает ошибку.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
matchDataСвойствоСпецифичные для игры данные, отражающие подробные данные соответствия. (только для чтения)
Объявление
Swift
var matchData: NSData! { get }Objective C
@property(readonly, retain, nonatomic) NSData *matchDataОбсуждение
Несмотря на то, что Игровой Центр знает, кто участвует в соответствии и кто, как ожидают, будет действовать затем, это ничего не знает о внутренней логике Вашей игры. Ваша игра предоставляет данные соответствия и всю логику программирования, требуемую интерпретировать его. Эти данные должны включать текущее состояние игры и предоставить любую необходимую подробную информацию о том, какие меры текущий проигрыватель, как ожидают, примет. Может также быть полезно для Вашей игры записать информацию о недавних перемещениях, сделанных другими проигрывателями. Игра может тогда воспроизвести те перемещения визуально для проигрывателя для показа точно, как соответствие достигло состояния, в котором это находится теперь.
Ваша игра никогда непосредственно обновляет состояние соответствия, связанное с этим свойством. Вместо этого когда данные обновляются для отражения действий текущего проигрывателя, игра сериализирует обновленное состояние в память и вызывает один из методов экземпляра соответствия, передающих обновленное состояние в Игровой Центр.
Значение этого свойства
nilпока Ваша игра не вызываетloadMatchDataWithCompletionHandler:метод и задача загрузки завершены. После того, как эта задача завершается,matchDataсвойство содержит данные что последний проигрыватель для действия переданное к Игровому Центру.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Загружает специфичные для игры данные, связанные с соответствием, включая все обмены.
Объявление
Параметры
completionHandlerБлок, который вызовут после данных соответствия, получен от сервера.
Блок получает следующие параметры:
matchDataДанные сохранили на Игровом Центре, отражающем текущее состояние соответствия. Если ошибка произошла, это значение
nil.errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
saveCurrentTurnWithMatchData (_: completionHandler:) - saveCurrentTurnWithMatchData:completionHandler:Обновите данные соответствия, не совершенствуя игру к другому проигрывателю.
Объявление
Параметры
matchDataСериализированный блоб данных, отражающих специфичное для игры состояние для соответствия. Не передавать
nilкак параметр.completionHandlerБлок, который вызовут после данных, загружается на Игровой Центр.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Этот метод обновляет данные соответствия, хранившие на Игровом Центре. Вызовите этот метод, когда текущий проигрыватель принимает меры, совершенствующие состояние соответствия, но не заканчивающие очередь проигрывателя. Например, если Ваша игра имеет механика вуали войны, Вы могли бы вызвать этот метод, когда проигрыватель показал новую информацию о карте.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
endTurnWithNextParticipants (_: turnTimeout:matchData:completionHandler:) - endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:Обновляет данные, хранившие на Игровом Центре текущего соответствия.
Объявление
Swift
func endTurnWithNextParticipants(_nextParticipants: [AnyObject]!, turnTimeouttimeout: NSTimeInterval, matchDatamatchData: NSData!, completionHandlercompletionHandler: ((NSError!) -> Void)!)Objective C
- (void)endTurnWithNextParticipants:(NSArray *)nextParticipantsturnTimeout:(NSTimeInterval)timeoutmatchData:(NSData *)matchDatacompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
nextParticipantsМассив
GKTurnBasedParticipantобъекты, отражающие порядок, в котором проигрыватели должны действовать затем. Каждый объект в массиве должен быть одним из объектов, хранивших в соответствииparticipantsсвойство.timeoutОтрезок времени следующий проигрыватель должен завершить их очередь.
matchDataСериализированный блоб данных, отражающих специфичное для игры состояние для соответствия. Не передавать
nilкак параметр.completionHandlerБлок, который вызовут после данных, загружается на Игровой Центр.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Если следующий проигрыватель, который будет действовать, не принимает их оборот в указанном интервале, следующий проигрыватель в массиве получает уведомление действию. Этот процесс продолжается, пока проигрыватель не принимает оборот, или последний проигрыватель в списке уведомляется.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
Обновляет данные, хранившие на Игровом Центре текущего соответствия.
Оператор осуждения
Использовать
endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:вместо этого.Объявление
Objective C
- (void)endTurnWithNextParticipant:(GKTurnBasedParticipant *)nextParticipantmatchData:(NSData *)matchDatacompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
nextParticipantСледующий проигрыватель в соответствии, кто должен принять меры. Это должен быть один из объекта, сохранил в соответствии
participantsсвойство.matchDataСериализированный блоб данных, отражающих специфичное для игры состояние для соответствия. Не передавать
nilкак параметр.completionHandlerБлок, который вызовут после данных, загружается на Игровой Центр.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 5.0 и позже.
Осуждаемый в iOS 6.0.
-
participantQuitInTurnWithOutcome (_: nextParticipants:turnTimeout:matchData:completionHandler:) - participantQuitInTurnWithOutcome:nextParticipants:turnTimeout:matchData:completionHandler:Оставляет текущий проигрыватель с соответствия, не заканчивая матч.
Объявление
Swift
func participantQuitInTurnWithOutcome(_matchOutcome: GKTurnBasedMatchOutcome, nextParticipantsnextParticipants: [AnyObject]!, turnTimeouttimeout: NSTimeInterval, matchDatamatchData: NSData!, completionHandlercompletionHandler: ((NSError!) -> Void)!)Objective C
- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcomenextParticipants:(NSArray *)nextParticipantsturnTimeout:(NSTimeInterval)timeoutmatchData:(NSData *)matchDatacompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
matchOutcomeРезультат конца текущего проигрывателя в соответствии. Не передавать
nilкак параметр.nextParticipantsМассив
GKTurnBasedParticipantобъекты, который содержит участвующие объекты, отражающие порядок, в котором проигрыватели должны действовать затем. Каждый объект в массиве должен быть одним из объектов, хранивших в соответствииparticipantsсвойство.timeoutОтрезок времени следующий проигрыватель должен завершить их очередь.
matchDataСериализированный блоб данных, отражающих специфичное для игры состояние для соответствия.
completionHandlerБлок, который вызовут после данных, загружается на сервер.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Ваша игра вызывает этот метод на экземпляре Вашей игры, обрабатывающей очередь текущего проигрывателя, но тот проигрыватель оставил соответствие. Например, проигрыватель, возможно, охотно ушел из соответствия, или тот проигрыватель, возможно, был устранен другими проигрывателями (на основе внутренней логики Вашей игры).
Если следующий проигрыватель, который будет действовать, не принимает их оборот в указанном интервале, следующий проигрыватель в массиве получает уведомление действию. Этот процесс продолжается, пока проигрыватель не принимает оборот, или последний проигрыватель в списке уведомляется.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 6.0 и позже.
-
Оставляет текущий проигрыватель с соответствия, не заканчивая матч.
Оператор осуждения
Использовать
participantQuitInTurnWithOutcome:nextParticipants:turnTimeout:matchData:completionHandler:вместо этого.Объявление
Objective C
- (void)participantQuitInTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcomenextParticipant:(GKTurnBasedParticipant *)nextParticipantmatchData:(NSData *)matchDatacompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
matchOutcomeРезультат конца текущего проигрывателя в соответствии. Не передавать
nilкак параметр.nextParticipantСледующий проигрыватель в соответствии, кто должен принять меры. Это должен быть один из объекта, сохранил в соответствии
participantsсвойство.matchDataСериализированный блоб данных, отражающих специфичное для игры состояние для соответствия.
completionHandlerБлок, который вызовут после данных, загружается на сервер.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Ваша игра вызывает этот метод на экземпляре Вашей игры, обрабатывающей очередь текущего проигрывателя, но тот проигрыватель оставил соответствие. Например, проигрыватель, возможно, охотно ушел из соответствия, или тот проигрыватель, возможно, был устранен другими проигрывателями (на основе внутренней логики Вашей игры).
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 5.0 и позже.
Осуждаемый в iOS 6.0.
-
participantQuitOutOfTurnWithOutcome (_: withCompletionHandler:) - participantQuitOutOfTurnWithOutcome:withCompletionHandler:Когда тот проигрыватель не является текущим проигрывателем, оставляет проигрыватель с соответствия. Это действие не заканчивает матч
Объявление
Swift
func participantQuitOutOfTurnWithOutcome(_matchOutcome: GKTurnBasedMatchOutcome, withCompletionHandlercompletionHandler: ((NSError!) -> Void)!)Objective C
- (void)participantQuitOutOfTurnWithOutcome:(GKTurnBasedMatchOutcome)matchOutcomewithCompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
matchOutcomeРезультат конца текущего проигрывателя в соответствии. Не передавать
nilкак параметр.completionHandlerБлок, который вызовут после состояния проигрывателя, обновляется на Игровом Центре.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Если местный игрок решил, что они хотели уйти из соответствия, но не являются текущим участником соответствия, Ваша игра вызывает этот метод.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
endMatchInTurnWithMatchData (_: scores:achievements:completionHandler:) - endMatchInTurnWithMatchData:scores:achievements:completionHandler:Заканчивает матч при представлении всех очков и достижений.
Объявление
Параметры
matchDataСериализированный блоб данных, отражающих текущее состояние для соответствия. Не передавать
nilкак параметр.scoresМассив
GKScoreобъекты, содержащие окончательные оценки для каждого участника соответствия.achievementsМассив
GKAchievementобъекты, содержащие достижения, получены каждым участником соответствия.completionHandlerБлок, который вызовут после очков, сохраняется к серверу.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Этот метод заканчивает текущий матч и представляет очки и достижения для всех участников. Очки могут представленный многократным спискам лидеров.
GKTurnBasedMatchOutcomeсостояние должно быть установлено для каждого участника прежде, чем вызвать этот метод.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
endMatchInTurnWithMatchData (_: completionHandler:) - endMatchInTurnWithMatchData:completionHandler:Заканчивает матч.
Объявление
Параметры
matchDataСериализированный блоб данных, отражающих конечное состояние для соответствия. Не передавать
nilкак параметр.completionHandlerБлок, который вызовут после соответствия, успешно заканчивается.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Вызов этого метода заканчивает матч для всех проигрывателей. Этот метод может только вызвать текущий участник. Прежде чем Ваша игра вызывает этот метод,
matchOutcomeсвойство на каждом участвующем объекте, хранившем вparticipantsсвойство, должно быть, было установлено в значение кромеGKTurnBasedMatchOutcomeNone.Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
Программно удаляет соответствие из Игрового Центра.
Объявление
Swift
func removeWithCompletionHandler(_completionHandler: ((NSError!) -> Void)!)Objective C
- (void)removeWithCompletionHandler:(void (^)(NSError *error))completionHandlerПараметры
completionHandlerБлок, который вызовут после соответствия, был удален из Игрового Центра.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Даже после того, как участие проигрывателя в соответствии заканчивается, данные, связанные с соответствием, продолжают храниться на Игровом Центре. Хранить данные на Игровом Центре позволяет проигрывателю продолжать наблюдать прогресс соответствия, или даже видеть конечное состояние соответствия, когда это заканчивается. Однако проигрыватели могут также хотеть удалить матчи, которые они закончили сыграть. Если Вы принимаете решение не использовать стандартный пользовательский интерфейс антрепренера, Ваша игра должна предложить возможность для удаления законченного соответствия из Игрового Центра. Когда проигрыватель примет решение удалить соответствие из Игрового Центра, вызовите этот метод. Это - программная ошибка для вызова этого метода на соответствии, имеющем местного игрока как активного участника.
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Когда задача завершается, соответствие больше не видимо местному игроку, устройство которого выполнило вызов. Другие проигрыватели, вовлеченные в соответствие все еще, видят соответствие.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
saveMergedMatchData (_: withResolvedExchanges:completionHandler:) - saveMergedMatchData:withResolvedExchanges:completionHandler:Сохраняет объединенные данные для текущего поворота, не заканчивая поворот.
Объявление
Параметры
matchDataСериализированный блоб данных, отражающих текущее состояние для соответствия.
exchangesМассив
GKTurnBasedExchangeобъекты, который содержит разрешенные обмены.completionHandlerБлок, который вызовут после очков, сохраняется к серверу.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Когда этот метод вызывают, отправленные данные отмечены как разрешаемый. Это означает, что данные были объединены в данные соответствия. Если другие проигрыватели в настоящее время будут иметь игровое выполнение, то они получат a
handleTurnEventForMatchвызовите для указания этогоmatchDataизменился. Все завершенные обмены должны быть разрешены прежде, чем закончить поворот. Если завершенные обмены не были разрешены, то вызовendTurn,participantQuitInTurnWithOutCome, илиendMatchInTurnприведет к ошибке.Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
sendExchangeToParticipants (_: data:localizableMessageKey:arguments:timeout:completionHandler:) - sendExchangeToParticipants:data:localizableMessageKey:arguments:timeout:completionHandler:Отправляет обменный запрос одному или более участникам.
Объявление
Swift
func sendExchangeToParticipants(_participants: [AnyObject]!, datadata: NSData!, localizableMessageKeykey: String!, argumentsarguments: [AnyObject]!, timeouttimeout: NSTimeInterval, completionHandlercompletionHandler: ((GKTurnBasedExchange!, NSError!) -> Void)!)Objective C
- (void)sendExchangeToParticipants:(NSArray *)participantsdata:(NSData *)datalocalizableMessageKey:(NSString *)keyarguments:(NSArray *)argumentstimeout:(NSTimeInterval)timeoutcompletionHandler:(void (^)(GKTurnBasedExchange *exchange, NSError *error))completionHandlerПараметры
participantsМассив
GKTurnBasedParticipantобъекты, содержащие участников, которые должны получить напоминание.dataДанные, которыми обменяются между проигрывателями.
keyРасположение предупредительной строки сообщения в файле Локэлизэбле.стрингса для текущей локализации.
argumentsМассив
NSStringобъекты, которыми заменят с помощью строки формата.timeoutОтрезок времени следующий проигрыватель должен завершить их очередь.
completionHandlerБлок, который вызовут после обменного запроса, был отправлен.
Блок получает следующие параметры:
exchangeОбновленный обмен, который будет передан.
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Позволяет обменному запросу быть отправленным одному или более участникам. Каждый получатель получает уведомление нажатия, использующее предоставленное локализуемое сообщение. Если какой-либо из участников неактивен, ошибка возвращается.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
activeExchangesСвойствоВозвращает обмены, которые активны для местного игрока. (только для чтения)
Объявление
Swift
var activeExchanges: [AnyObject]! { get }Objective C
@property(readonly, retain, nonatomic) NSArray *activeExchangesОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
completedExchangesСвойствоОбмены, завершенные и потребность, которая будет объединена локальным участником. (только для чтения)
Объявление
Swift
var completedExchanges: [AnyObject]! { get }Objective C
@property(readonly, retain, nonatomic) NSArray *completedExchangesОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
exchangeDataMaximumSizeСвойствоМаксимальная сумма данных допускала обмен. (только для чтения)
Объявление
Swift
var exchangeDataMaximumSize: Int { get }Objective C
@property(readonly, nonatomic) NSUInteger exchangeDataMaximumSizeОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
Ограничивает число обменов, которые проигрыватель мог инициировать сразу. (только для чтения)
Объявление
Swift
var exchangeMaxInitiatedExchangesPerPlayer: Int { get }Objective C
@property(readonly, nonatomic) NSUInteger exchangeMaxInitiatedExchangesPerPlayerОператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
exchangesСвойствоТекущие обмены, происходящие для соответствия. (только для чтения)
Объявление
Swift
var exchanges: [AnyObject]! { get }Objective C
@property(readonly, retain, nonatomic) NSArray *exchangesОбсуждение
Когда обмены будут завершены и разрешены путем слияния его в данные соответствия, это будет удалено из этого списка.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
sendReminderToParticipants (_: localizableMessageKey:arguments:completionHandler:) - sendReminderToParticipants:localizableMessageKey:arguments:completionHandler:Отправьте напоминание одному или более игровым участникам.
Объявление
Параметры
participantsМассив
GKTurnBasedParticipantобъекты, содержащие участников, которые должны получить напоминание.keyРасположение предупредительной строки сообщения в файле Локэлизэбле.стрингса для текущей локализации.
argumentsМассив объектов, которыми заменят с помощью строки формата.
completionHandlerБлок, который вызовут после напоминания, был отправлен.
Блок получает следующие параметры:
errorЕсли ошибка произошла, этот ошибочный объект описывает ошибку. Если работа была завершена успешно, значение
nil.Обсуждение
Когда этот метод вызывают, он создает новую фоновую задачу для обрабатывания запроса. Метод тогда возвращает управление Вашей игре. Позже, когда задача завершена, Гэйм Кит вызывает Ваш обработчик завершения. Обработчик завершения всегда вызывают на основном потоке.
Когда этот метод вызывают, каждый получатель получает уведомление нажатия с помощью предоставленного локализуемого сообщения. Это позволяет игре отправлять напоминания, что поворот или обмен запрашивают действие потребностей. Получателю генерируют событие поворота для текущей игры.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
Позволяет разработчику отображать сообщение в конце поворота или соответствия.
Объявление
Swift
func setLocalizableMessageWithKey(_key: String!, argumentsarguments: [AnyObject]!)Параметры
keyРасположение предупредительной строки сообщения в файле Локэлизэбле.стрингса для текущей локализации.
argumentsМассив
NSStringобъекты, которыми заменят с помощью строки формата.Обсуждение
Только текущий проигрыватель в состоянии установить это сообщение. Если игра установлена и на стороне отправителя иначе, отправленное сообщение локализуется на стороне получателя. Локализованное сообщение, идентифицированное через
keyпараметр может быть отформатирован с % и %n$ спецификаторы. Эти спецификаторы используют объекты, определяемые вargumentsмассив.Локализованное сообщение оценено локально от этих ключей и отправляется также так, чтобы устройства, которым не устанавливали игру, видели сообщение в локализации отправителя.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 7.0 и позже.
-
Различные состояния, которые может ввести соответствие.
Объявление
Swift
enum GKTurnBasedMatchStatus : Int { case Unknown case Open case Ended case Matching }Objective C
enum { GKTurnBasedMatchStatusUnknown = 0, GKTurnBasedMatchStatusOpen = 1, GKTurnBasedMatchStatusEnded = 2, GKTurnBasedMatchStatusMatching = 3 }; typedef NSInteger GKTurnBasedMatchStatus;Константы
-
UnknownGKTurnBasedMatchStatusUnknownСоответствие находится в неожиданном состоянии.
Доступный в iOS 5.0 и позже.
-
OpenGKTurnBasedMatchStatusOpenМатч в настоящее время сыгран.
Доступный в iOS 5.0 и позже.
-
EndedGKTurnBasedMatchStatusEndedСоответствие было завершено.
Доступный в iOS 5.0 и позже.
-
MatchingGKTurnBasedMatchStatusMatchingИгровой Центр все еще ищет другие проигрыватели для присоединения к соответствию.
Доступный в iOS 5.0 и позже.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
-
Различные состояния для определенного участника соответствия.
Объявление
Swift
enum GKTurnBasedParticipantStatus : Int { case Unknown case Invited case Declined case Matching case Active case Done }Objective C
enum { GKTurnBasedParticipantStatusUnknown = 0, GKTurnBasedParticipantStatusInvited = 1, GKTurnBasedParticipantStatusDeclined = 2, GKTurnBasedParticipantStatusMatching = 3, GKTurnBasedParticipantStatusActive = 4, GKTurnBasedParticipantStatusDone = 5, }; typdef NSInteger GKTurnBasedParticipantStatus;Константы
-
UnknownGKTurnBasedParticipantStatusUnknownТекущее состояние участника не известно.
Доступный в iOS 5.0 и позже.
-
InvitedGKTurnBasedParticipantStatusInvitedУчастник был приглашен в соответствие, но еще не ответил на приглашение.
Доступный в iOS 5.0 и позже.
-
DeclinedGKTurnBasedParticipantStatusDeclinedУчастник отклонил приглашение соответствия.
Доступный в iOS 5.0 и позже.
-
MatchingGKTurnBasedParticipantStatusMatchingУчастник ожидает для соответствия к игре.
Доступный в iOS 5.0 и позже.
-
ActiveGKTurnBasedParticipantStatusActiveУчастник в настоящее время активен в соответствии.
Доступный в iOS 5.0 и позже.
-
DoneGKTurnBasedParticipantStatusDoneУчастник сделан с текущим сеансом.
Доступный в iOS 5.0 и позже.
-
-
Описания для различной игры заканчиваются состояния для данного участника, достигнувшего сделанного состояния.
Объявление
Swift
enum GKTurnBasedMatchOutcome : Int { case None case Quit case Won case Lost case Tied case TimeExpired case First case Second case Third case Fourth case CustomRange }Objective C
enum { GKTurnBasedMatchOutcomeNone = 0, GKTurnBasedMatchOutcomeQuit = 1, GKTurnBasedMatchOutcomeWon = 2, GKTurnBasedMatchOutcomeLost = 3, GKTurnBasedMatchOutcomeTied = 4, GKTurnBasedMatchOutcomeTimeExpired = 5, GKTurnBasedMatchOutcomeFirst = 6, GKTurnBasedMatchOutcomeSecond = 7, GKTurnBasedMatchOutcomeThird = 8, GKTurnBasedMatchOutcomeFourth = 9, GKTurnBasedMatchOutcomeCustomRange = 0x00FF0000 }; typedef NSInteger GKTurnBasedMatchOutcome;Константы
-
NoneGKTurnBasedMatchOutcomeNoneУчастник не закончил соответствие.
Доступный в iOS 5.0 и позже.
-
QuitGKTurnBasedMatchOutcomeQuitУчастник вышел из соответствия.
Доступный в iOS 5.0 и позже.
-
WonGKTurnBasedMatchOutcomeWonУчастник выиграл состязание.
Доступный в iOS 5.0 и позже.
-
LostGKTurnBasedMatchOutcomeLostУчастник проиграл матч.
Доступный в iOS 5.0 и позже.
-
TiedGKTurnBasedMatchOutcomeTiedУчастник связал текущее соответствие.
Доступный в iOS 5.0 и позже.
-
TimeExpiredGKTurnBasedMatchOutcomeTimeExpiredИгра закончилась вследствие времени, закончившись.
Доступный в iOS 5.0 и позже.
-
FirstGKTurnBasedMatchOutcomeFirstУчастник вошел сначала.
Доступный в iOS 5.0 и позже.
-
SecondGKTurnBasedMatchOutcomeSecondУчастник вошел второй.
Доступный в iOS 5.0 и позже.
-
ThirdGKTurnBasedMatchOutcomeThirdУчастник приехал в треть.
Доступный в iOS 5.0 и позже.
-
FourthGKTurnBasedMatchOutcomeFourthУчастник вошел четвертый.
Доступный в iOS 5.0 и позже.
-
CustomRangeGKTurnBasedMatchOutcomeCustomRangeПользовательский диапазон, доступный для приложения для использования для его собственных результатов состояния.
Доступный в iOS 5.0 и позже.
Оператор импорта
Objective C
@import GameKit;Swift
import GameKitДоступность
Доступный в iOS 5.0 и позже.
-
-
Общие ценности для тайм-аутов поворота.
Объявление
Swift
var GKTurnTimeoutDefault: NSTimeInterval var GKTurnTimeoutNone: NSTimeIntervalObjective C
extern NSTimeInterval GKTurnTimeoutDefault; extern NSTimeInterval GKTurnTimeoutNone;Константы
