NSOutputStream
NSOutputStream класс является подклассом NSStream это обеспечивает потоковую функциональность только для записи.
NSOutputStream “бесплатный соединенный мостом” с его Базовым дубликатом Основы, CFWriteStreamRef. Для получения дополнительной информации о бесплатном образовании моста посмотрите Бесплатное Образование моста.
Разделение на подклассы примечаний
NSOutputStream конкретный подкласс NSStream это позволяет Вам записать данные в поток. Несмотря на то, что NSOutputStream вероятно, достаточно для большинства ситуаций, требующих этой возможности, можно создать подкласс NSOutputStream если Вы хотите более специализированное поведение (например, Вы хотите записать статистику по данным в потоке).
Методы для переопределения
Создать подкласс NSOutputStream Вам, вероятно, придется реализовать инициализаторы для типа потоковых поддерживаемых данных и соответственно повторно реализовать существующие инициализаторы. Необходимо также обеспечить полноценные внедрения следующих методов:
-
От текущего указателя записи возьмите до числа байтов, указанных в
maxLength:параметр от предоставленного клиентами буфера (первый параметр) и помещенный их на поток. Буфер должен иметь размер, указанный вторым параметром. Для подготовки к следующей работе сместите указатель записи числом записанных байтов. Возвратите целое число со знаком на основе результата текущей работы:Если операция записи успешна, возвратите фактическое число байтов, помещенных на поток.
Если была ошибка при записи в поток, возвратитесь-1.
Если поток имеет фиксированную длину и достиг своей способности, возвратите нуль.
-
Возвратиться
YEStrueесли поток может в настоящее время принимать больше данных,NOfalseесли это не может. Если Вы хотите быть семантически совместимыми сNSOutputStream, возвратитьсяYEStrueесли запись должна быть опробована, чтобы определить, доступно ли пространство.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода, который запишет потоковые данные в память.
Объявление
Swift
class func outputStreamToMemory() -> Self!Objective C
+ (instancetype)outputStreamToMemoryВозвращаемое значение
Инициализированный поток вывода, который запишет потоковые данные в память.
Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Вы получаете содержание потока памяти путем отправки сообщения
propertyForKey:к получателю с параметромNSStreamDataWrittenToMemoryStreamKey.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода, который может записать в предоставленный буфер.
Объявление
Objective C
+ (instancetype)outputStreamToBuffer:(uint8_t *)buffercapacity:(NSUInteger)capacityПараметры
bufferБуфер поток вывода запишет в.
capacityРазмер буфера в байтах.
Возвращаемое значение
Инициализированный поток вывода, который может записать в
buffer.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Когда число байтов, записанных в
bufferдостигcapacity, потокstreamStatusвозвратитсяNSStreamStatusAtEnd.Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода для записи в указанный файл.
Объявление
Objective C
+ (instancetype)outputStreamToFileAtPath:(NSString *)pathappend:(BOOL)shouldAppendПараметры
pathПуть к файлу поток вывода запишет в.
shouldAppendYEStrueесли недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NOfalseиначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
path.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода для записи в указанный URL.
Объявление
Objective C
+ (instancetype)outputStreamWithURL:(NSURL *)urlappend:(BOOL)shouldAppendПараметры
urlURL к файлу поток вывода запишет в.
shouldAppendYEStrueесли недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NOfalseиначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
url.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.6 и позже.
-
init (toMemory:) - initToMemoryОпределяемый инициализаторВозвращает инициализированный поток вывода, который запишет в память.
Объявление
Swift
init(toMemorytoMemory: ())Objective C
- (instancetype)initToMemoryВозвращаемое значение
Инициализированный поток вывода, который запишет потоковые данные в память.
Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Содержание потока памяти получено путем передачи константы
NSStreamDataWrittenToMemoryStreamKeyкpropertyForKey:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
init (toBuffer:capacity:) - initToBuffer:capacity:Определяемый инициализаторВозвращает инициализированный поток вывода, который может записать в предоставленный буфер.
Объявление
Swift
init(toBufferbuffer: UnsafeMutablePointer<UInt8>, capacitycapacity: Int)Objective C
- (instancetype)initToBuffer:(uint8_t *)buffercapacity:(NSUInteger)capacityПараметры
bufferБуфер поток вывода запишет в.
capacityРазмер буфера в байтах.
Возвращаемое значение
Инициализированный поток вывода, который может записать в
buffer.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Когда число байтов, записанных в
bufferдостигcapacity, потокstreamStatusвозвратитсяNSStreamStatusAtEnd.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает инициализированный поток вывода для записи в указанный файл.
Объявление
Swift
convenience init?(toFileAtPathpath: String, appendshouldAppend: Bool)Objective C
- (instancetype)initToFileAtPath:(NSString *)pathappend:(BOOL)shouldAppendПараметры
pathПуть к файлу поток вывода запишет в.
shouldAppendYEStrueесли недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NOfalseиначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
path.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
init (URL:append:) - initWithURL:append:Определяемый инициализаторВозвращает инициализированный поток вывода для записи в указанный URL.
Объявление
Swift
init?(URLurl: NSURL, appendshouldAppend: Bool)Objective C
- (instancetype)initWithURL:(NSURL *)urlappend:(BOOL)shouldAppendПараметры
urlURL к файлу поток вывода запишет в.
shouldAppendYEStrueесли недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NOfalseиначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
url.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
hasSpaceAvailable hasSpaceAvailableСвойствоБулево значение, указывающее, может ли получатель быть записан в. (только для чтения)
Объявление
Swift
var hasSpaceAvailable: Bool { get }Objective C
@property(readonly) BOOL hasSpaceAvailableОбсуждение
YEStrueесли получатель может быть записан в или если запись должна быть опробована, чтобы определить, доступно ли пространство,NOfalseиначе.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Пишет содержание буфера предоставленных данных к получателю.
Объявление
Objective C
- (NSInteger)write:(const uint8_t *)buffermaxLength:(NSUInteger)lengthПараметры
bufferДанные для записи.
lengthДлина буфера данных, в байтах.
Возвращаемое значение
Число байтов, фактически записанных, или
-1если происходит ошибка. Больше информации об ошибке может быть получено сstreamError. Если получатель является потоком фиксированной длины и достиг его способности,0возвращается.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
