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 *)
request
withCompletionHandler:(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 *)
nextParticipants
turnTimeout:(NSTimeInterval)timeout
matchData:(NSData *)matchData
completionHandler:(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 *)
nextParticipant
matchData:(NSData *)matchData
completionHandler:(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)
matchOutcome
nextParticipants:(NSArray *)nextParticipants
turnTimeout:(NSTimeInterval)timeout
matchData:(NSData *)matchData
completionHandler:(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)
matchOutcome
nextParticipant:(GKTurnBasedParticipant *)nextParticipant
matchData:(NSData *)matchData
completionHandler:(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)
matchOutcome
withCompletionHandler:(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 *)
participants
data:(NSData *)data
localizableMessageKey:(NSString *)key
arguments:(NSArray *)arguments
timeout:(NSTimeInterval)timeout
completionHandler:(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;
Константы
-
Unknown
GKTurnBasedMatchStatusUnknown
Соответствие находится в неожиданном состоянии.
Доступный в iOS 5.0 и позже.
-
Open
GKTurnBasedMatchStatusOpen
Матч в настоящее время сыгран.
Доступный в iOS 5.0 и позже.
-
Ended
GKTurnBasedMatchStatusEnded
Соответствие было завершено.
Доступный в iOS 5.0 и позже.
-
Matching
GKTurnBasedMatchStatusMatching
Игровой Центр все еще ищет другие проигрыватели для присоединения к соответствию.
Доступный в 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;
Константы
-
Unknown
GKTurnBasedParticipantStatusUnknown
Текущее состояние участника не известно.
Доступный в iOS 5.0 и позже.
-
Invited
GKTurnBasedParticipantStatusInvited
Участник был приглашен в соответствие, но еще не ответил на приглашение.
Доступный в iOS 5.0 и позже.
-
Declined
GKTurnBasedParticipantStatusDeclined
Участник отклонил приглашение соответствия.
Доступный в iOS 5.0 и позже.
-
Matching
GKTurnBasedParticipantStatusMatching
Участник ожидает для соответствия к игре.
Доступный в iOS 5.0 и позже.
-
Active
GKTurnBasedParticipantStatusActive
Участник в настоящее время активен в соответствии.
Доступный в iOS 5.0 и позже.
-
Done
GKTurnBasedParticipantStatusDone
Участник сделан с текущим сеансом.
Доступный в 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;
Константы
-
None
GKTurnBasedMatchOutcomeNone
Участник не закончил соответствие.
Доступный в iOS 5.0 и позже.
-
Quit
GKTurnBasedMatchOutcomeQuit
Участник вышел из соответствия.
Доступный в iOS 5.0 и позже.
-
Won
GKTurnBasedMatchOutcomeWon
Участник выиграл состязание.
Доступный в iOS 5.0 и позже.
-
Lost
GKTurnBasedMatchOutcomeLost
Участник проиграл матч.
Доступный в iOS 5.0 и позже.
-
Tied
GKTurnBasedMatchOutcomeTied
Участник связал текущее соответствие.
Доступный в iOS 5.0 и позже.
-
TimeExpired
GKTurnBasedMatchOutcomeTimeExpired
Игра закончилась вследствие времени, закончившись.
Доступный в iOS 5.0 и позже.
-
First
GKTurnBasedMatchOutcomeFirst
Участник вошел сначала.
Доступный в iOS 5.0 и позже.
-
Second
GKTurnBasedMatchOutcomeSecond
Участник вошел второй.
Доступный в iOS 5.0 и позже.
-
Third
GKTurnBasedMatchOutcomeThird
Участник приехал в треть.
Доступный в iOS 5.0 и позже.
-
Fourth
GKTurnBasedMatchOutcomeFourth
Участник вошел четвертый.
Доступный в iOS 5.0 и позже.
-
CustomRange
GKTurnBasedMatchOutcomeCustomRange
Пользовательский диапазон, доступный для приложения для использования для его собственных результатов состояния.
Доступный в iOS 5.0 и позже.
Оператор импорта
Objective C
@import GameKit;
Swift
import GameKit
Доступность
Доступный в iOS 5.0 и позже.
-
-
Общие ценности для тайм-аутов поворота.
Объявление
Swift
var GKTurnTimeoutDefault: NSTimeInterval var GKTurnTimeoutNone: NSTimeInterval
Objective C
extern NSTimeInterval GKTurnTimeoutDefault; extern NSTimeInterval GKTurnTimeoutNone;
Константы