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

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

Разработчик

Ссылка платформы MultipeerConnectivity ссылка класса MCSession

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

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

MCSession

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


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


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


Swift

import MultipeerConnectivity

Objective C

@import MultipeerConnectivity;

Доступность


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

MCSession объект включает и управляет коммуникацией среди всех коллег в Мультиравноправном сеансе Связи.

Инициирование сеанса

Для установки сеанса приложение должно сделать следующее:

  1. Создайте MCPeerID объект, представляющий локальный узел и использующий его для инициализации объекта сеанса.

  2. Добавьте коллеги к сеансу с помощью объекта браузера, контроллера представления браузера, или вручную. (Сеансы в настоящее время поддерживают до 8 коллег, включая локальный узел.)

  3. Ожидайте, пока сеанс не вызывает Ваш объект делегата session:peer:didChangeState: метод с MCSessionStateConnected как новое состояние, вместе с объектом, говорящим Вам, какая коллега стала связанной.

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

Связь с коллегами

Как только Вы установили сеанс, Ваше приложение может отправить данные другим коллегам путем вызова одного из следующих методов:

  • sendData:toPeers:withMode:error: отправляет NSData возразите против указанных коллег.

    На каждом устройстве получателя, объект делегата session:didReceiveData:fromPeer: когда данные были полностью получены, метод вызывают с объектом данных.

  • sendResourceAtURL:withName:toPeer:withCompletionHandler: отправляет содержание от NSURL возразите против указанной коллеги. URL может быть или локальным файлом URL или веб-URL. completionHandler блок вызывают, когда ресурс полностью получен коллегой получателя или когда ошибка происходит во время передачи.

    Этот метод возвращается NSProgress возразите, что можно использовать, чтобы отменить передачу или проверить текущий статус передачи.

    На устройстве получателя сеанс вызывает свой объект делегата session:didStartReceivingResourceWithName:fromPeer:withProgress: метод, когда устройство начинает получать ресурс и вызывает session:didFinishReceivingResourceWithName:fromPeer:atURL:withError: метод, когда ресурс был полностью получен или когда происходит ошибка.

  • startStreamWithName:toPeer:error: создает связанный поток байтов (NSOutputStream) то, что можно использовать, чтобы отправить данные указанной коллеге.

    На устройстве получателя сеанс вызывает свой объект делегата session:didReceiveStream:withName:fromPeer: метод с NSInputStream объект, представляющий другую конечную точку коммуникации.

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

Управление коллегами вручную

Если Вы решаете записать свой собственный равноправный код открытия (с NSNetService или Добрый день C API, например), можно также вручную соединить соседние коллеги в сеанс. Чтобы сделать это, Ваше приложение должно сделать следующее:

  1. Установите соединение с соседними коллегами и обменивайтесь, взаимодействуют с IDs с теми коллегами. Каждая коллега должна сериализировать его собственную локальную переменную MCPeerID объект с NSKeyedArchiver, и принимающий пиринговый узел должен не сериализировать его с NSKeyedUnarchiver.

  2. Данные подключения к станции. После получения объекта ID соседней коллеги вызвать nearbyConnectionDataForPeer:withCompletionHandler: для получения данных о соединении возражают определенный для той соседней коллеги.

    Когда блок обработчика завершения вызовут, отправьте получающийся объект данных о соединении той коллеге.

  3. Когда Ваше приложение получает данные о соединении от другой коллеги, это должно вызвать connectPeer:withNearbyConnectionData: добавить что коллега к сеансу.

Можно также отменить выдающуюся попытку подключения путем вызова cancelConnectPeer:.

Разъединение

Для отъезда сеанса приложение должно вызвать disconnect.

  • Создает Мультиравноправный сеанс Связи.

    Объявление

    Swift

    convenience init!(peer myPeerID: MCPeerID!)

    Objective C

    - (instancetype)initWithPeer:(MCPeerID *)myPeerID

    Параметры

    myPeerID

    Локальный идентификатор, представляющий устройство, на котором в настоящее время работает Ваше приложение.

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

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

    Обсуждение

    Этот метод эквивалентен вызову initWithPeer:securityIdentity:encryptionPreference: с a nil идентификационные данные и MCEncryptionOptional как предпочтение шифрования.

    Если предоставленная коллега объект ID недопустима или, этот метод выдает исключение nil.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Создает Мультиравноправный сеанс Связи, обеспечивая информацию о безопасности.

    Объявление

    Swift

    init!(peer myPeerID: MCPeerID!, securityIdentity identity: [AnyObject]!, encryptionPreference encryptionPreference: MCEncryptionPreference)

    Objective C

    - (instancetype)initWithPeer:(MCPeerID *)myPeerID securityIdentity:(NSArray *)identity encryptionPreference:(MCEncryptionPreference)encryptionPreference

    Параметры

    myPeerID

    Локальный идентификатор, представляющий устройство, на котором в настоящее время работает Ваше приложение.

    identity

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

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

    Остаток от массива должен содержать нуль или более дополнительный SecCertificateRef объекты, обеспечивающие любые промежуточные сертификаты, которых соседние коллеги могли бы потребовать при проверке идентификационных данных локального узла. Эти сертификаты должны быть отправлены в порядке цепочки сертификата.

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

    encryptionPreference

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

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

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

    Обсуждение

    Если предоставленная коллега объект ID недопустима или, этот метод выдает исключение nil.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • delegate Свойство

    Объект делегата, обрабатывающий связанные с сеансом события.

    Объявление

    Swift

    weak var delegate: MCSessionDelegate!

    Objective C

    @property(weak, nonatomic) id< MCSessionDelegate > delegate

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • encryptionPreference Свойство

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

    Объявление

    Swift

    var encryptionPreference: MCEncryptionPreference { get }

    Objective C

    @property(readonly, nonatomic) MCEncryptionPreference encryptionPreference

    Обсуждение

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • myPeerID Свойство

    Локальный идентификатор, представляющий устройство, на котором в настоящее время работает Ваше приложение. (только для чтения)

    Объявление

    Swift

    var myPeerID: MCPeerID! { get }

    Objective C

    @property(readonly, nonatomic) MCPeerID *myPeerID

    Обсуждение

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • securityIdentity Свойство

    Идентификационные данные безопасности локального узла. (только для чтения)

    Объявление

    Swift

    var securityIdentity: [AnyObject]! { get }

    Objective C

    @property(readonly, nonatomic) NSArray *securityIdentity

    Обсуждение

    Когда Вы инициализируете объект и не можете быть изменены позже, это значение установлено. Для получения дополнительной информации на этом значении, см. документацию для initWithPeer:securityIdentity:encryptionPreference:.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Подключите коллегу к сеансу вручную.

    Объявление

    Swift

    func connectPeer(_ peerID: MCPeerID!, withNearbyConnectionData data: NSData!)

    Objective C

    - (void)connectPeer:(MCPeerID *)peerID withNearbyConnectionData:(NSData *)data

    Параметры

    peerID

    Равноправный узел объект ID получен от соседней коллеги.

    data

    Объект данных о соединении получен от соседней коллеги.

    Обсуждение

    Этот метод используется для соединения с коллегами при использовании собственного кода открытия службы. Для получения дополнительной информации посмотрите Управляющие Коллеги Вручную.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Отменяет попытку соединиться с коллегой.

    Объявление

    Swift

    func cancelConnectPeer(_ peerID: MCPeerID!)

    Objective C

    - (void)cancelConnectPeer:(MCPeerID *)peerID

    Параметры

    peerID

    ID соседней коллеги.

    Обсуждение

    Этот метод используется для отмены соединений с коллегами при использовании собственного кода открытия службы. Это нужно вызвать в двух ситуациях:

    • Если Ваше приложение вызывает connectPeer:withNearbyConnectionData: и позже решает отменить попытку подключения

    • Если Ваше приложение получило соседние данные о соединении для коллеги и позже решает не соединиться с ними

    Для получения дополнительной информации посмотрите Управляющие Коллеги Вручную.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • connectedPeers Свойство

    Массив всех коллег, в настоящее время подключающихся к этому сеансу. (только для чтения)

    Объявление

    Swift

    var connectedPeers: [AnyObject]! { get }

    Objective C

    @property(readonly, nonatomic) NSArray *connectedPeers

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Получает данные о соединении для указанной коллеги.

    Объявление

    Swift

    func nearbyConnectionDataForPeer(_ peerID: MCPeerID!, withCompletionHandler completionHandler: ((NSData!, NSError!) -> Void)!)

    Objective C

    - (void)nearbyConnectionDataForPeer:(MCPeerID *)peerID withCompletionHandler:(void (^)(NSData *connectionData, NSError *error))completionHandler

    Параметры

    peerID

    Равноправный объект ID получил от соседней коллеги, которую Вы хотите добавить к сеансу.

    completionHandler

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

    Обсуждение

    Этот метод обеспечивает данные о соединении, требующиеся при добавлении определенной соседней коллеги к сеансу, если Вы используете свой собственный код открытия службы. Для получения дополнительной информации посмотрите Управляющие Коллеги Вручную.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Отправляет сообщение, инкапсулировавшее в NSData возразите против соседних коллег.

    Объявление

    Swift

    func sendData(_ data: NSData!, toPeers peerIDs: [AnyObject]!, withMode mode: MCSessionSendDataMode, error error: NSErrorPointer) -> Bool

    Objective C

    - (BOOL)sendData:(NSData *)data toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError **)error

    Параметры

    data

    Объект, содержащий сообщение для отправки.

    peerIDs

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

    mode

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

    error

    Адрес NSError указатель, где ошибочный объект должен храниться на ошибку.

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

    Возвраты YEStrue если сообщение успешно ставилось в очередь для поставки, или NOfalse если произошла ошибка.

    Обсуждение

    Этот метод является асинхронным (неблокирование).

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Отправляет содержание URL коллеге.

    Объявление

    Swift

    func sendResourceAtURL(_ resourceURL: NSURL!, withName resourceName: String!, toPeer peerID: MCPeerID!, withCompletionHandler completionHandler: ((NSError!) -> Void)!) -> NSProgress!

    Objective C

    - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void (^)(NSError *error))completionHandler

    Параметры

    resourceURL

    Файл или HTTP URL.

    resourceName

    Имя для ресурса.

    peerID

    Коллега, которая должна получить этот ресурс.

    completionHandler

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

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

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

    Обсуждение

    Этот метод является асинхронным (неблокирование).

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

    На устройстве получателя сеанс вызывает своего делегата session:didStartReceivingResourceWithName:fromPeer:withProgress: метод, как только это начинает получать ресурс. Этот метод обеспечивает NSProgress возразите, что Ваше приложение может использовать, чтобы отменить передачу или проверить ее состояние.

    По успешной поставке, на устройстве получателя, сеанс вызывает своего делегата session:didFinishReceivingResourceWithName:fromPeer:atURL:withError: метод. Полученный ресурс записан в файл во временном расположении с тем же базовым именем; приложение ответственно за открытие файла или перемещение его к постоянному расположению перед тем методом делегата возвраты.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

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

    Объявление

    Swift

    func startStreamWithName(_ streamName: String!, toPeer peerID: MCPeerID!, error error: NSErrorPointer) -> NSOutputStream!

    Objective C

    - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError **)error

    Параметры

    streamName

    Имя для потока. Это имя предоставлено для соседней коллеги.

    peerID

    ID соседней коллеги.

    error

    Адрес NSError указатель, где ошибочный объект должен храниться, если что-то идет не так, как надо.

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

    Возвращает объект потока вывода на успех или nil если не мог бы быть установлен поток.

    Обсуждение

    Этот метод неблокирует.

    Для получения дополнительной информации о выполнении сетей с потоками ввода и вывода, считайте Сетевые Темы Программирования.

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Разъединяет локальный узел от сеанса.

    Объявление

    Swift

    func disconnect()

    Objective C

    - (void)disconnect

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Указывает, должна ли быть гарантирована поставка данных.

    Объявление

    Swift

    enum MCSessionSendDataMode : Int { case Reliable case Unreliable }

    Objective C

    typedef NS_ENUM (NSInteger, MCSessionSendDataMode ) { MCSessionSendDataReliable, MCSessionSendDataUnreliable };

    Константы

    • Reliable

      MCSessionSendDataReliable

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

      Этот тип сообщения должен использоваться для критических данных приложения.

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

    • Unreliable

      MCSessionSendDataUnreliable

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

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

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Указывает текущее состояние данной коллеги в сеансе.

    Объявление

    Swift

    enum MCSessionState : Int { case NotConnected case Connecting case Connected }

    Objective C

    typedef NS_ENUM (NSInteger, MCSessionState ) { MCSessionStateNotConnected, MCSessionStateConnecting, MCSessionStateConnected };

    Константы

    • NotConnected

      MCSessionStateNotConnected

      Коллега не (или больше не) в этом сеансе.

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

    • Connecting

      MCSessionStateConnecting

      Соединение с коллегой в настоящее время устанавливается.

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

    • Connected

      MCSessionStateConnected

      Коллега подключена к этому сеансу.

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Указывает, должен ли сеанс использовать шифрование при передаче с соседними коллегами.

    Объявление

    Swift

    enum MCEncryptionPreference : Int { case Optional case Required case None }

    Objective C

    typedef NS_ENUM (NSInteger, MCEncryptionPreference ) { MCEncryptionOptional = 0, MCEncryptionRequired = 1, MCEncryptionNone = 2, };

    Константы

    • Optional

      MCEncryptionOptional

      Сеанс предпочитает использовать шифрование, но примет незашифрованные соединения.

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

    • Required

      MCEncryptionRequired

      Сеанс требует шифрования.

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

    • None

      MCEncryptionNone

      Сеанс не должен быть зашифрован.

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Коды ошибки, найденные в MCErrorDomain ошибочный домен NSError объекты, возвращенные методами в Мультиравноправной платформе Связи.

    Объявление

    Swift

    enum MCErrorCode : Int { case Unknown case NotConnected case InvalidParameter case Unsupported case TimedOut case Cancelled case Unavailable }

    Objective C

    enum MCErrorCode { MCErrorUnknown = 0, MCErrorNotConnected = 1, MCErrorInvalidParameter = 2, MCErrorUnsupported = 3, MCErrorTimedOut = 4, MCErrorCancelled = 5, MCErrorUnavailable = 6, }; typedef NSInteger MCErrorCode;

    Константы

    • Unknown

      MCErrorUnknown

      Произошла неизвестная ошибка.

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

    • NotConnected

      MCErrorNotConnected

      Ваше приложение попыталось отправить данные не соединяющейся коллеге.

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

    • InvalidParameter

      MCErrorInvalidParameter

      Ваше приложение передало недопустимое значение в качестве параметра.

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

    • Unsupported

      MCErrorUnsupported

      Работа не поддерживается. Например, если Вы вызываете, эта ошибка возвращается sendResourceAtURL:withName:toPeer:withCompletionHandler: с URL, который не является ни локальным файлом, ни веб-URL.

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

    • TimedOut

      MCErrorTimedOut

      Попытка подключения испытала таймаут.

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

    • Cancelled

      MCErrorCancelled

      Работа была отменена пользователем.

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

    • Unavailable

      MCErrorUnavailable

      Мультиравноправная связь в настоящее время недоступна.

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

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

    Objective C

    @import MultipeerConnectivity;

    Swift

    import MultipeerConnectivity

    Доступность

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

  • Ошибочный домен для ошибок, определенных для Мультивзаимодействования со Связью.

    Объявление

    Swift

    let MCErrorDomain: String

    Objective C

    NSString * const MCErrorDomain;

    Константы

    • MCErrorDomain

      NSError доменная константа. Если domain значение для NSError объект равен MCErrorDomain, тогда ошибка была произведена самой Мультиравноправной платформой Связи, в противоположность платформе низшего уровня, от которой это зависит.

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

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

    Объявление

    Swift

    let kMCSessionMaximumNumberOfPeers: Int let kMCSessionMinimumNumberOfPeers: Int

    Objective C

    NSUInteger const kMCSessionMaximumNumberOfPeers; NSUInteger const kMCSessionMinimumNumberOfPeers;

    Константы

    • kMCSessionMaximumNumberOfPeers

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

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

    • kMCSessionMinimumNumberOfPeers

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

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