Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы GameKit ссылка класса GKSession

Опции
Развертывание Target:

На этой странице
Язык:

GKSession

Наследование


Соответствует


Оператор импорта


Swift

import GameKit

Objective C

@import GameKit;

Доступность


Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.

A GKSession объект предоставляет возможность, чтобы обнаружить и соединиться с соседними устройствами на iOS с помощью Bluetooth или Wi-Fi.

Сеансы прежде всего работают с коллегами. Коллега является любым устройством на iOS, сделанным видимым путем создания и конфигурирования a GKSession объект. Каждая коллега идентифицируется уникальным идентификатором, названным равноправным ID (peerID) строка. Ваше приложение может использовать a peerID строка, чтобы получить читаемое пользователем имя для удаленного узла и попытаться соединиться с той коллегой. Точно так же коллега Вашего сеанса ID видима другим соседним коллегам. После того, как соединение установлено, Ваше приложение использует ID удаленного узла для пакетов адресных сведений, которые это хочет отправить.

Коллеги обнаруживают, что другие равноправные узлы при помощи уникальной строки идентифицируют службу, которую они реализуют, названный сеансом ID (sessionID). Сеансы могут быть сконфигурированы, чтобы широковещательно передать сеанс ID (как сервер), искать другие коллеги, распространяющиеся с тем сеансом ID (как клиент) или действовать и как сервер и как клиент одновременно (как коллега.

Ваше управление приложениями поведение сеанса через делегата, реализующего GKSessionDelegate протокол. Делегата вызывают, когда удаленные узлы обнаружены, когда те коллеги пытаются соединиться с сеансом, и когда изменяется состояние удаленного узла. Ваше приложение также обеспечивает обработчик данных для сеанса так, чтобы сеанс мог передать данные, которые это получает от удаленных узлов. Обработчик данных может быть отдельным объектом или тем же объектом как делегат.

Когда Bluetooth включен, скорости загрузки Wi-Fi решительно уменьшаются, в то время как устройство ищет другие устройства с поддержкой Bluetooth. После того, как время открытия Bluetooth завершилось, скорости Wi-Fi возвращаются к нормальному.

GKSession методы ориентированы на многопотоковое исполнение и могут быть вызваны от любого потока. Однако сеанс всегда вызывает своего делегата на основном потоке.

  • Инициализирует и возвращает недавно выделенный сеанс.

    Объявление

    Objective C

    - (id)initWithSessionID:(NSString *)sessionID displayName:(NSString *)name sessionMode:(GKSessionMode)mode

    Параметры

    sessionID

    Уникальная строка, идентифицирующая Ваше приложение. Ваш sessionID должно быть краткое название утвержденного типа службы Bonjour. Если nil, сеанс использует идентификатор пакета приложения для создания a sessionID строка.

    name

    Строка, идентифицирующая пользователя для отображения другим коллегам. Если nil, сеанс использует имя устройства.

    mode

    Режим сеанс должен работать в. Посмотрите Режимы Сеанса для возможных значений.

    Возвращаемое значение

    Инициализированный объект сеанса, или nil если произошла ошибка.

    Обсуждение

    Только сеансы, работающие с тем же sessionID видимы к Вашему сеансу.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • delegate (iOS 7.0) Свойство

    Делегат объекта сеанса.

    Объявление

    Objective C

    @property(assign) id< GKSessionDelegate > delegate

    Обсуждение

    Делегат сеанса ответственен за наблюдение изменений в других коллегах, работающих с тем же сеансом ID. Ваше приложение должно установить делегата прежде, чем сделать Ваш сеанс известным другим коллегам.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    GKSessionDelegate

  • available (iOS 7.0) Свойство

    Булево значение, определяющее, хочет ли сеанс соединиться с новыми коллегами.

    Объявление

    Objective C

    @property(getter=isAvailable) BOOL available

    Обсуждение

    Когда available YEStrue, сеанс видим другим коллегам на основе sessionMode свойство. Когда available установлен в NOfalse, это остается связанным с коллегами, но больше не видимо несвязанным коллегам. Значение по умолчанию NOfalse.

    Как правило, Ваше приложение конфигурирует объект сеанса с делегатом и получателем данных, и затем устанавливает available к YEStrue. Когда делегат заканчивает соединяться с коллегами, это должно установить сеанс available свойство к NOfalse.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Возвращает список коллег в указанном состоянии соединения.

    Объявление

    Objective C

    - (NSArray *)peersWithConnectionState:(GKPeerConnectionState)state

    Параметры

    state

    Состояние соединения для поиска. Посмотрите Состояния соединения для возможных значений.

    Возвращаемое значение

    Массив NSString объекты с a peerID строка для каждой коллеги, видимой к сеансу, который в настоящее время находится в указанном состоянии соединения. Если нет никаких коллег в указанном состоянии соединения, этот метод возвраты nil.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Возвращает читаемое пользователем имя для коллеги.

    Объявление

    Objective C

    - (NSString *)displayNameForPeer:(NSString *)peerID

    Параметры

    peerID

    Строка, однозначно определяющая коллегу.

    Возвращаемое значение

    Имя для коллеги, или nil если peerID не связан с видимой коллегой.

    Обсуждение

    Имя дисплея используется для заполнения пользовательского интерфейса с именами других коллег, видимых к сеансу.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    displayName

  • Создает соединение с другим устройством на iOS.

    Объявление

    Objective C

    - (void)connectToPeer:(NSString *)peerID withTimeout:(NSTimeInterval)timeout

    Параметры

    peerID

    Строка, идентифицирующая коллегу для соединения с.

    timeout

    Количество времени для ожидания прежде, чем отменить попытку подключения.

    Обсуждение

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

    Если соединение с удаленным узлом успешно, делегат session:peer:didChangeState: метод вызывают для каждой коллеги, с которой он успешно соединился. Если сбои соединения или Ваше приложение отменяют попытку подключения, сеанс вызывает делегата session:connectionWithPeerFailed:withError: метод.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – cancelConnectToPeer:

  • Отменяет незаконченный запрос для соединения с другим устройством на iOS.

    Объявление

    Objective C

    - (void)cancelConnectToPeer:(NSString *)peerID

    Параметры

    peerID

    Строка, идентифицирующая коллегу, Вы ранее запросили соединиться с.

    Обсуждение

    Ваше приложение ранее вызывают connectToPeer:withTimeout: создать соединение с другим устройством на iOS. Когда Ваше приложение отменяет попытку подключения, оба делегата session:connectionWithPeerFailed:withError: методы вызывают.

    Если бы Ваше приложение уже соединилось с коллегой, то Ваше приложение должно вызвать disconnectFromAllPeers вместо этого.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Вызванный делегатом для принятия запроса на установление соединения, полученного от удаленного узла.

    Объявление

    Objective C

    - (BOOL)acceptConnectionFromPeer:(NSString *)peerID error:(NSError **)error

    Параметры

    peerID

    Строка, идентифицирующая коллегу, инициировавшую соединение с сеансом.

    error

    Когда соединение коллеги, по возврату содержит, если произошла ошибка NSError объект, объясняющий проблему.

    Возвращаемое значение

    YEStrue если соединение было установлено к удаленному узлу; NOfalse если произошла ошибка.

    Обсуждение

    Когда Ваш сеанс действует как сервер, клиентские коллеги могут обнаружить Ваш сеанс и попытку соединиться с ним. Когда клиент пытается соединиться с сеансом, делегат session:didReceiveConnectionRequestFromPeer: метод вызывают, чтобы решить, должна ли быть соединена коллега. Ваше приложение вызывает этот метод для принятия запроса, или denyConnectionFromPeer: отклонить его.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – denyConnectionFromPeer:

  • Вызванный делегатом для отклонения запроса на установление соединения, полученного от удаленного узла.

    Объявление

    Objective C

    - (void)denyConnectionFromPeer:(NSString *)peerID

    Параметры

    peerID

    Строка, идентифицирующая коллегу, инициировавшую соединение с сеансом.

    Обсуждение

    Когда Ваш сеанс действует как сервер, клиентские коллеги могут обнаружить Ваш сеанс и попытку соединиться с ним. Когда клиент пытается соединиться с сеансом, делегат session:didReceiveConnectionRequestFromPeer: метод вызывают, чтобы решить, должна ли быть соединена коллега. Ваше приложение вызывает этот метод для отклонения запроса или acceptConnectionFromPeer:error: принять его.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Устанавливает объект, обрабатывающий данные, полученные от других коллег, подключенных к сеансу.

    Объявление

    Objective C

    - (void)setDataReceiveHandler:(id)handler withContext:(void *)context

    Параметры

    handler

    Объект, который Вы хотите, чтобы сеанс вызвал, когда это получает данные от других коллег.

    context

    Произвольные данные, которые будут переданы каждому вызову обработчика.

    Обсуждение

    Обработчик должен реализовать метод со следующей подписью:

    • - (void) receiveData:(NSData *)
    • data
    • fromPeer:(NSString *)
    • peer
    • inSession: (GKSession *)
    • session
    • context:(void *)
    • context
    • ;

    где данные содержат байты, полученные от удаленного узла, коллега является строкой, идентифицирующей коллегу, сеанс является сеансом, получившим данные, и контекст является тем же контекстом, переданным в первоначальный вызов setDataReceiveHandler:withContext:.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Передает набор байтов к списку связанных коллег.

    Объявление

    Objective C

    - (BOOL)sendData:(NSData *)data toPeers:(NSArray *)peers withDataMode:(GKSendDataMode)mode error:(NSError **)error

    Параметры

    data

    Байты, которые будут отправлены.

    peers

    Массив NSString объекты, идентифицирующие коллеги, которые должны получить данные.

    mode

    Механизм раньше отправлял данные.

    error

    Если данные не могли бы быть поставлены в очередь, NSError объект, описывающий ошибку.

    Возвращаемое значение

    YEStrue если данные были успешно поставлены в очередь для передачи; NOfalse если объект сеанса был неспособен поставить данные в очередь.

    Обсуждение

    Сеанс ставит данные в очередь и передает их в порядке, они были поставлены в очередь. Данные, переданные ненадежно, могут быть получены не в порядке другими коллегами.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Передает набор байтов всем связанным коллегам.

    Объявление

    Objective C

    - (BOOL)sendDataToAllPeers:(NSData *)data withDataMode:(GKSendDataMode)mode error:(NSError **)error

    Параметры

    data

    Байты, которые будут отправлены.

    mode

    Механизм раньше отправлял данные.

    error

    Если данные не могли бы быть поставлены в очередь, NSError объект, описывающий ошибку.

    Возвращаемое значение

    YEStrue если данные были успешно поставлены в очередь для передачи; NOfalse если объект сеанса был неспособен поставить данные в очередь.

    Обсуждение

    Когда сеть свободна, сеанс ставит данные в очередь и передает их.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • disconnectTimeout (iOS 7.0) Свойство

    Временной интервал, что экспрессы, сколько времени сеанс ожидает, прежде чем он разъединит небыстро реагирующую коллегу.

    Объявление

    Objective C

    @property(assign) NSTimeInterval disconnectTimeout

    Обсуждение

    Тайм-аут является временем ожидания прежде, чем разъединить коллегу от сеанса. Если коллега разъединяется, делегат session:peer:didChangeState: метод вызывают.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Разъединяет сеанс от всех связанных коллег.

    Объявление

    Objective C

    - (void)disconnectFromAllPeers

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Разъединяет связанную коллегу от всех коллег, подключенных к сеансу.

    Объявление

    Objective C

    - (void)disconnectPeerFromAllPeers:(NSString *)peerID

    Параметры

    peerID

    Строка, идентифицирующая коллегу для разъединения.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • displayName (iOS 7.0) Свойство

    Имя пользователя. (только для чтения)

    Объявление

    Objective C

    @property(readonly) NSString *displayName

    Обсуждение

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

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    – displayNameForPeer:

  • peerID (iOS 7.0) Свойство

    Строка, идентифицирующая Ваш сеанс для других коллег. (только для чтения)

    Объявление

    Objective C

    @property(readonly) NSString *peerID

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • sessionID (iOS 7.0) Свойство

    Строка раньше фильтровала список коллег, которым разрешают видеть Ваш сеанс. (только для чтения)

    Объявление

    Objective C

    @property(readonly) NSString *sessionID

    Обсуждение

    Сеанс ID используется сеансами, сконфигурированными как серверы для распространения себя другим коллегам и сеансами, сконфигурированными как клиенты для поиска совместимых серверов. Сеанс ID должен быть кратким названием утвержденного типа службы Bonjour.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • sessionMode (iOS 7.0) Свойство

    Режим использование сеанса для нахождения других коллег. (только для чтения)

    Объявление

    Objective C

    @property(readonly) GKSessionMode sessionMode

    Обсуждение

    Режим сеанса изменяет поведение сеанса когда available установлен в YEStrue.

    • A GKSessionModeServer сеанс распространяет себя к локальным устройствам с помощью его сеанса ID.

    • A GKSessionModeClient сеанс ищет локальные устройства, распространяя тот же сеанс ID. Поскольку это обнаруживает доступные и совместимые равноправные узлы, это вызывает делегата session:peer:didChangeState: метод.

    • A GKSessionModePeer сеанс и распространяется как сервер и ищет как клиент.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

    См. также

    доступный

  • Механизм раньше передавал данные другим коллегам.

    Объявление

    Objective C

    typedef enum { GKSendDataReliable, GKSendDataUnreliable, } GKSendDataMode;

    Константы

    • GKSendDataReliable

      Данные отправляются постоянно, пока они успешно не получены предполагаемыми получателями или времена соединения.

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

      Доступный в iOS 3.0 и позже.

    • GKSendDataUnreliable

      Если ошибка передачи произошла, данные отправляются один раз и не отправляются снова.

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

      Доступный в iOS 3.0 и позже.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Режимы, определяющие, как сеанс взаимодействует с другими коллегами.

    Объявление

    Objective C

    typedef enum { GKSessionModeServer, GKSessionModeClient, GKSessionModePeer, } GKSessionMode;

    Константы

    • GKSessionModeServer

      Сервер распространяет себя к локальным устройствам с помощью sessionID свойство.

      Доступный в iOS 3.0 и позже.

    • GKSessionModeClient

      Клиент ищет серверы, распространяя то же sessionID свойство.

      Доступный в iOS 3.0 и позже.

    • GKSessionModePeer

      Коллега распространяется как сервер и ищет как клиент.

      Доступный в iOS 3.0 и позже.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • Состояние коллеги, известной сеансу.

    Объявление

    Objective C

    typedef enum { GKPeerStateAvailable, GKPeerStateUnavailable, GKPeerStateConnected, GKPeerStateDisconnected, GKPeerStateConnecting } GKPeerConnectionState;

    Константы

    • GKPeerStateAvailable

      Коллега не соединилась с сеансом, но тем, с которым может соединиться сеанс.

      Доступный в iOS 3.0 и позже.

    • GKPeerStateUnavailable

      Коллега, больше не интересующаяся получением соединений.

      Доступный в iOS 3.0 и позже.

    • GKPeerStateConnected

      Коллега соединилась с сеансом.

      Доступный в iOS 3.0 и позже.

    • GKPeerStateDisconnected

      Коллега, разъединившаяся от сеанса.

      Доступный в iOS 3.0 и позже.

    • GKPeerStateConnecting

      Коллега, пытающаяся соединяться с сеансом.

      Доступный в iOS 3.0 и позже.

    Обсуждение

    Состояния не являются взаимоисключающими. Например, коллега может быть доступна другим коллегам для обнаружения, в то время как это пытается соединиться с другой коллегой.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.

  • GKSession ошибочный домен.

    Объявление

    Swift

    let GKSessionErrorDomain: String

    Objective C

    NSString * const GKSessionErrorDomain;

    Константы

    • GKSessionErrorDomain

      Ошибка произошла в GKSession.

      Доступный в iOS 3.0 и позже.

  • Коды ошибки для GKSession ошибочный домен.

    Объявление

    Objective C

    typedef enum { GKSessionInvalidParameterError = 30500, GKSessionPeerNotFoundError = 30501, GKSessionDeclinedError = 30502, GKSessionTimedOutError = 30503, GKSessionCancelledError = 30504, GKSessionConnectionFailedError = 30505, GKSessionConnectionClosedError = 30506, GKSessionDataTooBigError = 30507, GKSessionNotConnectedError = 30508, GKSessionCannotEnableError = 30509, GKSessionInProgressError = 30510, GKSessionConnectivityError = 30201, GKSessionTransportError = 30202, GKSessionInternalError = 30203, GKSessionUnknownError = 30204, GKSessionSystemError = 30205 } GKSessionError;

    Константы

    • GKSessionInvalidParameterError

      Параметр имел неожиданное значение.

      Доступный в iOS 3.0 и позже.

    • GKSessionPeerNotFoundError

      Коллега с указанным peerID строка не могла быть найдена.

      Доступный в iOS 3.0 и позже.

    • GKSessionDeclinedError

      Коллега Ваше приложение попыталась подключить к отказанному соединение.

      Доступный в iOS 3.0 и позже.

    • GKSessionTimedOutError

      В указанный период тайм-аута не могла быть завершена работа.

      Доступный в iOS 3.0 и позже.

    • GKSessionCancelledError

      Коллега, пригласившая сеанс соединяться с ними, отменила запрос на установление соединения.

      Доступный в iOS 3.0 и позже.

    • GKSessionConnectionFailedError

      Попытка установить соединение с другой коллегой перестала работать.

      Доступный в iOS 3.0 и позже.

    • GKSessionConnectionClosedError

      Соединение с другой коллегой неожиданно закрылось.

      Доступный в iOS 3.0 и позже.

    • GKSessionDataTooBigError

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

      Доступный в iOS 3.0 и позже.

    • GKSessionNotConnectedError

      Зарезервированный для будущего использования.

      Доступный в iOS 3.0 и позже.

    • GKSessionCannotEnableError

      Bluetooth не в настоящее время доступен.

      Доступный в iOS 3.0 и позже.

    • GKSessionInProgressError

      Коллега, с которой Ваше приложение попыталось соединиться, уже запросила соединение с Вашим сеансом.

      Доступный в iOS 3.0 и позже.

    • GKSessionConnectivityError

      Ошибка произошла в GKSession код соединения объекта.

      Доступный в iOS 3.0 и позже.

    • GKSessionTransportError

      Ошибка произошла в GKSession транспортный код объекта.

      Доступный в iOS 3.0 и позже.

    • GKSessionInternalError

      Серьезная ошибка произошла внутри GKSession.

      Доступный в iOS 3.0 и позже.

    • GKSessionUnknownError

      Зарезервированный для того, когда ошибка не помещается в другую категорию выше.

      Доступный в iOS 3.0 и позже.

    • GKSessionSystemError

      Ошибка произошла за пределами GKSession управление объекта, такое как выделение памяти.

      Доступный в iOS 3.0 и позже.

    Оператор импорта

    Objective C

    @import GameKit;

    Доступность

    Доступный в iOS 3.0 и позже.

    Осуждаемый в iOS 7.0.