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