NSInputStream
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSInputStream
подкласс NSStream
это обеспечивает потоковую функциональность только для чтения.
NSInputStream
“бесплатный соединенный мостом” с его Базовым дубликатом Основы, CFReadStreamRef
. Для получения дополнительной информации о бесплатном образовании моста посмотрите Бесплатное Образование моста.
Разделение на подклассы примечаний
NSInputStream
конкретный подкласс NSStream
это дает Вам стандартный доступ только для чтения к потоковым данным. Несмотря на то, что NSInputStream
вероятно, достаточно для большинства ситуаций, требующих доступа к потоковым данным, можно создать подкласс NSInputStream
если Вы хотите более специализированное поведение (например, Вы хотите записать статистику по данным в потоке).
Методы для переопределения
Создать подкласс NSInputStream
Вам, вероятно, придется реализовать инициализаторы для типа потоковых поддерживаемых данных и соответственно повторно реализовать существующие инициализаторы. Необходимо также обеспечить полноценные внедрения следующих методов:
-
От текущего индекса чтения возьмите до числа байтов, указанных во втором параметре от потока, и разместите их в предоставленный клиентами буфер (первый параметр). Буфер должен иметь размер, указанный вторым параметром. Возвратите фактическое число байтов, помещенных в буфер; если нет ничего в потоке, возвратиться
0
. Сбросьте индекс в поток для следующей операции чтения. -
Возвратитесь в 0 (1) указатель на выделенный подклассу буфер (первый параметр). Возврат ссылкой во втором параметре число байтов фактически помещается в буфер. Содержание буфера допустимо только до следующей операции с потоками. Возвратиться
NO
false
если Вы не можете получить доступ к данным в буфере; иначе, возвратитьсяYES
true
. Если этот метод не является подходящим для Вашего типа потока, можно возвратитьсяNO
false
. -
Возвратиться
YES
true
если существует больше данных для чтения в потоке,NO
false
если нет. Если Вы хотите быть семантически совместимыми сNSInputStream
, возвратитьсяYES
true
если чтение должно быть опробовано, чтобы определить, доступны ли байты.
-
Создает и возвращает инициализированный
NSInputStream
объект для чтения от данногоNSData
объект.Объявление
Objective C
+ (instancetype)inputStreamWithData:(NSData *)
data
Параметры
data
Объект данных, из которого можно читать. Содержание
data
копируются.Возвращаемое значение
Инициализированный
NSInputStream
объект для чтения отdata
. Еслиdata
не объект NSData, этот метод возвратыnil
.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
-
Создает и возвращает инициализированный
NSInputStream
объект, считывающий данные из файла в данном пути.Объявление
Objective C
+ (instancetype)inputStreamWithFileAtPath:(NSString *)
path
Параметры
path
Путь к файлу.
Возвращаемое значение
Инициализированный
NSInputStream
объект, считывающий данные из файла вpath
.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
-
Создает и возвращает инициализированный
NSInputStream
объект, считывающий данные из файла в данном URL.Объявление
Objective C
+ (instancetype)inputStreamWithURL:(NSURL *)
url
Параметры
url
URL к файлу.
Возвращаемое значение
Инициализированный
NSInputStream
объект, считывающий данные из URL вurl
.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в iOS 4.0 и позже.
См. также
-
init (данные:) - initWithData:
Определяемый инициализаторИнициализирует и возвращается
NSInputStream
объект для чтения от данногоNSData
объект.Параметры
data
Объект данных, из которого можно читать. Содержание
data
копируются.Возвращаемое значение
Инициализированный
NSInputStream
объект для чтения отdata
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.
-
Инициализирует и возвращается
NSInputStream
объект, считывающий данные из файла в данном пути.Объявление
Swift
convenience init?(fileAtPath
path
: String)Objective C
- (instancetype)initWithFileAtPath:(NSString *)
path
Параметры
path
Путь к файлу.
Возвращаемое значение
Инициализированный
NSInputStream
объект, считывающий данные из файла вpath
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.
-
init (URL:) - initWithURL:
Определяемый инициализаторИнициализирует и возвращается
NSInputStream
объект, считывающий данные из файла в данном URL.Параметры
url
URL к файлу.
Возвращаемое значение
Инициализированный
NSInputStream
объект, считывающий данные из файла вurl
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
См. также
-
Чтения до данного числа байтов в данный буфер.
Объявление
Objective C
- (NSInteger)read:(uint8_t *)
buffer
maxLength:(NSUInteger)len
Параметры
buffer
Буфер данных. Буфер должен быть достаточно большим для содержания числа байтов, указанных
len
.len
Максимальное количество байтов для чтения.
Возвращаемое значение
Число, указывающее результат работы:
Положительное число указывает число чтения байтов;
0
указывает, что был достигнут конец буфера;Отрицательное число означает, что работа перестала работать.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.
-
Возвраты ссылкой указатель на буфер чтения и, ссылкой, числом доступных байтов, и возвраты булево значение, указывающее, доступен ли буфер.
Объявление
Swift
func getBuffer(_
buffer
: UnsafeMutablePointer<UnsafeMutablePointer<UInt8>>, lengthlen
: UnsafeMutablePointer<Int>) -> BoolObjective C
- (BOOL)getBuffer:(uint8_t **)
buffer
length:(NSUInteger *)len
Параметры
buffer
По возврату, содержит указатель на буфер чтения. Буфер только допустим, пока не выполняется следующая операция с потоками.
len
По возврату, содержит число доступных байтов.
Возвращаемое значение
YES
true
если буфер доступен, иначеNO
false
.Подклассы
NSInputStream
может возвратитьсяNO
false
если эта работа не является подходящей для потокового типа.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.
-
hasBytesAvailable
СвойствоБулево значение, указывающее, имеет ли получатель байты в наличии для чтения. (только для чтения)
Объявление
Swift
var hasBytesAvailable: Bool { get }
Objective C
@property(readonly) BOOL hasBytesAvailable
Обсуждение
YES
true
если получатель имеет байты в наличии для чтения, иначеNO
false
. Май также возвращаетсяYES
true
если чтение должно быть опробовано для определения доступности байтов.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 2.0 и позже.