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

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

Разработчик

Ссылка платформы основы ссылка класса NSStream

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

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

NSStream

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


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


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


Swift

import Foundation

Objective C

@import Foundation;

Доступность


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

NSStream абстрактный класс для объектов, представляющих потоки. Его интерфейс характерен для всех потоковых классов Какао, включая его конкретные подклассы NSInputStream и NSOutputStream.

NSStream объекты обеспечивают простой способ считать и записать данные в и от множества носителей независящим от устройств способом. Можно создать потоковые объекты для данных, расположенных в памяти в файле, или в сети (использующие сокеты), и можно использовать потоковые объекты, не загружая все данные в память сразу.

По умолчанию, NSStream экземпляры, которые не основаны на файле, являются non-seekable, односторонние потоки (несмотря на то, что пользовательские seekable подклассы возможны). Как только данные были предоставлены или использованы, данные не могут быть получены от потока.

Разделение на подклассы примечаний

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

Методы для переопределения

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

  • open и close

    Реализация open открыть поток для чтения или записи и сделать поток доступным для клиента непосредственно или, если потоковый объект планируется на цикл выполнения делегату. Реализация close закрыть поток и удалить потоковый объект из цикла выполнения, при необходимости. Закрытый поток должен все еще быть в состоянии принять новые свойства и сообщить о его текущих свойствах. Как только поток закрывается, он не может быть вновь открыт.

  • delegate и setDelegate:

    Возвратите и установите делегата. Значением по умолчанию потоковый объект должен быть своим собственным делегатом; так a setDelegate: сообщение с параметром nil должен восстановить этого делегата. Не сохраняйте делегата для предотвращения, сохраняют циклы.

    Для приобретения знаний о делегатах и делегации считайте «Делегацию» в Фундаментальном Руководстве по Какао.

  • scheduleInRunLoop:forMode: и removeFromRunLoop:forMode:

    Реализация scheduleInRunLoop:forMode: запланировать потоковый объект на указанный цикл выполнения для указанного режима. Реализация removeFromRunLoop:forMode: удалить объект из цикла выполнения. См. документацию NSRunLoop класс для подробных данных. Как только потоковый объект для открытого потока планируется на цикл выполнения, это - ответственность подкласса, поскольку это обрабатывает потоковые данные для отправки stream:handleEvent: сообщения его делегату.

  • propertyForKey: и setProperty:forKey:

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

  • streamStatus и streamError

    Реализация streamStatus возвратить текущий статус потока как постоянный NSStreamStatus; можно определить новые константы NSStreamStatus, но, несомненно, сможете обработать NSStream- определенные константы должным образом. РеализацияstreamError возвратиться NSError объект, представляющий текущую ошибку. Вы могли бы решить возвратить пользовательское NSError объект, который может предоставить полную и локализованную информацию об ошибке.

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

    Объявление

    Swift

    func propertyForKey(_ key: String) -> AnyObject?

    Objective C

    - (id)propertyForKey:(NSString *)key

    Параметры

    key

    Ключ для одного из свойств получателя. Посмотрите Константы для описания доступных ключевых для свойства констант и присваиваемых значений.

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

    Свойство получателя для ключа key.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – setProperty:forKey:

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

    Объявление

    Swift

    func setProperty(_ property: AnyObject?, forKey key: String) -> Bool

    Objective C

    - (BOOL)setProperty:(id)property forKey:(NSString *)key

    Параметры

    property

    Значение для key.

    key

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

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

    YEStrue если значение принято получателем, иначе NOfalse.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – propertyForKey:

  • Возвращает делегата получателя.

    Объявление

    Swift

    unowned(unsafe) var delegate: NSStreamDelegate?

    Objective C

    @property(assign) id<NSStreamDelegate> delegate

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

    Делегат получателя. Делегат должен реализовать NSStreamDelegate Протокол.

    Обсуждение

    По умолчанию поток является своим собственным делегатом и подклассами NSInputStream и NSOutputStream должен поддержать настоящий договор.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – setDelegate:

  • Устанавливает делегата получателя.

    Объявление

    Swift

    unowned(unsafe) var delegate: NSStreamDelegate?

    Objective C

    @property(assign) id<NSStreamDelegate> delegate

    Параметры

    delegate

    Делегат к получателю.

    Обсуждение

    По умолчанию поток является своим собственным делегатом и подклассами NSInputStream и NSOutputStream должен поддержать настоящий договор. Если Вы переопределяете этот метод в подклассе, передавая nil должен восстановить получатель как его собственного делегата. Делегаты не сохраняются.

    Для приобретения знаний о делегатах и делегации считайте «Делегацию» в Фундаментальном Руководстве по Какао.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – делегат

  • Открывает поток получения.

    Объявление

    Swift

    func open()

    Objective C

    - (void)open

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – близко

  • Закрывает получатель.

    Объявление

    Swift

    func close()

    Objective C

    - (void)close

    Обсуждение

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

    См. также

    – открытый

  • Планирует получатель на данный выполненный цикл в данном режиме.

    Объявление

    Swift

    func scheduleInRunLoop(_ aRunLoop: NSRunLoop, forMode mode: String)

    Objective C

    - (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

    Параметры

    aRunLoop

    Цикл выполнения, на который можно запланировать получатель.

    mode

    Режим для цикла выполнения.

    Обсуждение

    Если клиент не опрашивает поток, это ответственно за обеспечение, что поток планируется по крайней мере на один выполненный цикл и что выполняется по крайней мере один из циклов выполнения, на которые планируется поток.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Удаляет получатель из данного выполненного цикла, работающего в данном режиме.

    Объявление

    Swift

    func removeFromRunLoop(_ aRunLoop: NSRunLoop, forMode mode: String)

    Objective C

    - (void)removeFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

    Параметры

    aRunLoop

    Цикл выполнения, на который был запланирован получатель.

    mode

    Режим для цикла выполнения.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвращает состояние получателя.

    Объявление

    Swift

    var streamStatus: NSStreamStatus { get }

    Objective C

    @property(readonly) NSStreamStatus streamStatus

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

    Состояние получателя.

    Обсуждение

    Посмотрите Константы для описания доступных констант NSStreamStatus.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Возвраты NSError объект, представляющий потоковую ошибку.

    Объявление

    Swift

    @NSCopying var streamError: NSError? { get }

    Objective C

    @property(readonly, copy) NSError *streamError

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

    NSError объект, представляющий потоковую ошибку, или nil если не встретились ни с какой ошибкой.

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

Типы данных

  • Тип, объявленный для констант, перечислен в Потоковых Константах Состояния.

    Объявление

    Swift

    enum NSStreamStatus : UInt { case NotOpen case Opening case Open case Reading case Writing case AtEnd case Closed case Error }

    Objective C

    typedef NSUInteger NSStreamStatus;

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • Эти константы указывают текущий статус потока. Они возвращаются streamStatus.

    Объявление

    Swift

    enum NSStreamStatus : UInt { case NotOpen case Opening case Open case Reading case Writing case AtEnd case Closed case Error }

    Objective C

    typedef enum { NSStreamStatusNotOpen = 0, NSStreamStatusOpening = 1, NSStreamStatusOpen = 2, NSStreamStatusReading = 3, NSStreamStatusWriting = 4, NSStreamStatusAtEnd = 5, NSStreamStatusClosed = 6, NSStreamStatusError = 7 };

    Константы

    • NotOpen

      NSStreamStatusNotOpen

      Поток не открыт для чтения или записи. Это состояние возвращается перед базовым вызовом для открытия потока, но после того, как это было создано.

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

    • Opening

      NSStreamStatusOpening

      Поток находится в процессе того, чтобы быть открытым для чтения или для записи. Для сетевых потоков это состояние могло бы включать время после того, как поток был открыт, но в то время как происходит сетевое разрешение DNS.

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

    • Open

      NSStreamStatusOpen

      Поток открыт, но не происходят никакое чтение или запись.

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

    • Reading

      NSStreamStatusReading

      Данные считываются из потока. Если код другого потока должен был вызвать, это состояние было бы возвращено streamStatus на потоке, в то время как a read:maxLength: вызовите (NSInputStream) происходило.

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

    • Writing

      NSStreamStatusWriting

      Данные пишутся в поток. Если код другого потока должен был вызвать, это состояние было бы возвращено streamStatus на потоке, в то время как a write:maxLength: вызовите (NSOutputStream) происходило.

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

    • AtEnd

      NSStreamStatusAtEnd

      Больше нет данных для чтения, или больше данных не может быть записано в поток. Когда это состояние возвращается, поток находится в режиме «неблокирования», и никакие данные не доступны.

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

    • Closed

      NSStreamStatusClosed

      Поток закрывается (close был вызван на нем).

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

    • Error

      NSStreamStatusError

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

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

  • Один или больше этих констант может быть отправлен делегату как немного поля во втором параметре stream:handleEvent:.

    Объявление

    Swift

    struct NSStreamEvent : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var None: NSStreamEvent { get } static var OpenCompleted: NSStreamEvent { get } static var HasBytesAvailable: NSStreamEvent { get } static var HasSpaceAvailable: NSStreamEvent { get } static var ErrorOccurred: NSStreamEvent { get } static var EndEncountered: NSStreamEvent { get } }

    Objective C

    typedef enum : NSUInteger { NSStreamEventNone = 0, NSStreamEventOpenCompleted = 1 << 0, NSStreamEventHasBytesAvailable = 1 << 1, NSStreamEventHasSpaceAvailable = 1 << 2, NSStreamEventErrorOccurred = 1 << 3, NSStreamEventEndEncountered = 1 << 4 } NSStreamEvent;

    Константы

    • None

      NSStreamEventNone

      Никакое событие не имело место.

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

    • OpenCompleted

      NSStreamEventOpenCompleted

      Открытое завершилось успешно.

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

    • HasBytesAvailable

      NSStreamEventHasBytesAvailable

      Поток имеет байты, которые будут считаны.

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

    • HasSpaceAvailable

      NSStreamEventHasSpaceAvailable

      Поток может принять байты для записи.

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

    • ErrorOccurred

      NSStreamEventErrorOccurred

      Ошибка произошла на потоке.

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

    • EndEncountered

      NSStreamEventEndEncountered

      Конец потока был достигнут.

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

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

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

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

  • NSStream определяет эти строковые константы как ключи для доступа к потоковому использованию свойств propertyForKey: и установка свойств с setProperty:forKey::

    Объявление

    Swift

    let NSStreamSocketSecurityLevelKey: String let NSStreamSOCKSProxyConfigurationKey: String let NSStreamDataWrittenToMemoryStreamKey: String let NSStreamFileCurrentOffsetKey: String let NSStreamNetworkServiceType: String

    Objective C

    NSString * const NSStreamSocketSecurityLevelKey; NSString * const NSStreamSOCKSProxyConfigurationKey; NSString * const NSStreamSOCKSProxyHostKey; NSString * const NSStreamSOCKSProxyPortKey; NSString * const NSStreamSOCKSProxyVersionKey; NSString * const NSStreamSOCKSProxyUserKey; NSString * const NSStreamSOCKSProxyPasswordKey; NSString * const NSStreamSOCKSProxyVersion4; NSString * const NSStreamSOCKSProxyVersion5; NSString * const NSStreamDataWrittenToMemoryStreamKey; NSString * const NSStreamFileCurrentOffsetKey; NSString * const NSStreamNetworkServiceType;

    Константы

    • NSStreamSocketSecurityLevelKey

      Уровень безопасности целевого потока. Посмотрите Уровень безопасности Уровня защищенных сокетов (SSL) для списка возможных значений.

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

    • NSStreamSOCKSProxyConfigurationKey

      Значение NSDictionary объект, содержащий SOCKS, проксирует конфигурационную информацию.

      Словарь возвратился из платформы Конфигурации системы для прокси SOCKS, обычно достаточен.

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

    • NSStreamDataWrittenToMemoryStreamKey

      Значение NSData экземпляр, содержащий данные, записанные в поток памяти.

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

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

    • NSStreamFileCurrentOffsetKey

      Значение NSNumber объект, содержащий текущее абсолютное смещение потока.

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

    • NSStreamNetworkServiceType

      Тип службы для потока. Обеспечение типа службы позволяет системе должным образом обрабатывать определенные атрибуты потока, включая поведение маршрутизации и приостановки. Большинство потоков не должно устанавливать это свойство. Посмотрите Потоковые Типы Службы для списка возможных значений.

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

  • NSStream определяет эти строковые константы для представления ошибочных доменов, которые могут быть возвращены streamError:

    Объявление

    Swift

    let NSStreamSocketSSLErrorDomain: String let NSStreamSOCKSErrorDomain: String

    Objective C

    NSString * const NSStreamSocketSSLErrorDomain ; NSString * const NSStreamSOCKSErrorDomain ;

    Константы

    • NSStreamSocketSSLErrorDomain

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

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

    • NSStreamSOCKSErrorDomain

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

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

  • NSStream определяет эти строковые константы для указания уровня безопасности уровня защищенных сокетов (SSL).

    Объявление

    Swift

    let NSStreamSocketSecurityLevelNone: String let NSStreamSocketSecurityLevelSSLv2: String let NSStreamSocketSecurityLevelSSLv3: String let NSStreamSocketSecurityLevelTLSv1: String let NSStreamSocketSecurityLevelNegotiatedSSL: String

    Objective C

    NSString * const NSStreamSocketSecurityLevelNone; NSString * const NSStreamSocketSecurityLevelSSLv2; NSString * const NSStreamSocketSecurityLevelSSLv3; NSString * const NSStreamSocketSecurityLevelTLSv1; NSString * const NSStreamSocketSecurityLevelNegotiatedSSL

    Константы

    • NSStreamSocketSecurityLevelNone

      Указывает, что никакой уровень безопасности не установлен для потока сокета.

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

    • NSStreamSocketSecurityLevelSSLv2

      Указывает что версия SSL, которая будет установлена как протокол системы защиты для потока сокета.

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

    • NSStreamSocketSecurityLevelSSLv3

      Указывает, что версия 3 SSL установлена как протокол системы защиты для потока сокета.

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

    • NSStreamSocketSecurityLevelTLSv1

      Указывает, что версия 1 TLS установлена как протокол системы защиты для потока сокета.

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

    • NSStreamSocketSecurityLevelNegotiatedSSL

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

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

    Обсуждение

    Вы получаете доступ и устанавливаете эти значения с помощью NSStreamSocketSecurityLevelKey ключ свойства.

  • NSStream определяет эти строковые константы для использования в качестве ключей для указания значений конфигурации прокси SOCKS в NSDictionary объект.

    Объявление

    Swift

    let NSStreamSOCKSProxyHostKey: String let NSStreamSOCKSProxyPortKey: String let NSStreamSOCKSProxyVersionKey: String let NSStreamSOCKSProxyUserKey: String let NSStreamSOCKSProxyPasswordKey: String let NSStreamSOCKSProxyVersion4: String let NSStreamSOCKSProxyVersion5: String

    Objective C

    NSString * const NSStreamSOCKSProxyHostKey; NSString * const NSStreamSOCKSProxyPortKey; NSString * const NSStreamSOCKSProxyVersionKey; NSString * const NSStreamSOCKSProxyUserKey; NSString * const NSStreamSOCKSProxyPasswordKey; NSString * const NSStreamSOCKSProxyVersion4; NSString * const NSStreamSOCKSProxyVersion5

    Константы

    • NSStreamSOCKSProxyHostKey

      Значение NSString объект, представляющий прокси-сервер SOCKS.

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

    • NSStreamSOCKSProxyPortKey

      Значение NSNumber объект, содержащий целое число, представляющее порт, на котором слушает прокси.

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

    • NSStreamSOCKSProxyVersionKey

      Значение также NSStreamSOCKSProxyVersion4 или NSStreamSOCKSProxyVersion5.

      Если этот ключ не присутствует, NSStreamSOCKSProxyVersion5 используется по умолчанию.

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

    • NSStreamSOCKSProxyUserKey

      Значение NSString объект, содержащий имя пользователя.

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

    • NSStreamSOCKSProxyPasswordKey

      Значение NSString объект, содержащий пароль пользователя.

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

    • NSStreamSOCKSProxyVersion4

      Возможное значение для NSStreamSOCKSProxyVersionKey.

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

    • NSStreamSOCKSProxyVersion5

      Возможное значение для NSStreamSOCKSProxyVersionKey.

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

    Обсуждение

    Вы устанавливаете объект словаря как текущую конфигурацию прокси SOCKS с помощью NSStreamSOCKSProxyConfigurationKey ключ

  • NSStream определяет эти строковые константы для указания типа службы потока.

    Объявление

    Swift

    let NSStreamNetworkServiceTypeVoIP: String let NSStreamNetworkServiceTypeVideo: String let NSStreamNetworkServiceTypeBackground: String let NSStreamNetworkServiceTypeVoice: String

    Objective C

    NSString * const NSStreamNetworkServiceTypeVoIP NSString * const NSStreamNetworkServiceTypeVideo NSString * const NSStreamNetworkServiceTypeBackground NSString * const NSStreamNetworkServiceTypeVoice

    Константы

    • NSStreamNetworkServiceTypeVoIP

      Указывает, что поток предоставляет услугу VoIP.

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

    • NSStreamNetworkServiceTypeVideo

      Указывает, что поток предоставляет видео услугу.

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

    • NSStreamNetworkServiceTypeBackground

      Указывает, что поток предоставляет фоновую услугу.

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

    • NSStreamNetworkServiceTypeVoice

      Указывает, что поток обеспечивает услугу передачи речи.

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