NSOutputStream
NSOutputStream
класс является подклассом NSStream
это обеспечивает потоковую функциональность только для записи.
NSOutputStream
“бесплатный соединенный мостом” с его Базовым дубликатом Основы, CFWriteStreamRef
. Для получения дополнительной информации о бесплатном образовании моста посмотрите Бесплатное Образование моста.
Разделение на подклассы примечаний
NSOutputStream
конкретный подкласс NSStream
это позволяет Вам записать данные в поток. Несмотря на то, что NSOutputStream
вероятно, достаточно для большинства ситуаций, требующих этой возможности, можно создать подкласс NSOutputStream
если Вы хотите более специализированное поведение (например, Вы хотите записать статистику по данным в потоке).
Методы для переопределения
Создать подкласс NSOutputStream
Вам, вероятно, придется реализовать инициализаторы для типа потоковых поддерживаемых данных и соответственно повторно реализовать существующие инициализаторы. Необходимо также обеспечить полноценные внедрения следующих методов:
-
От текущего указателя записи возьмите до числа байтов, указанных в
maxLength:
параметр от предоставленного клиентами буфера (первый параметр) и помещенный их на поток. Буфер должен иметь размер, указанный вторым параметром. Для подготовки к следующей работе сместите указатель записи числом записанных байтов. Возвратите целое число со знаком на основе результата текущей работы:Если операция записи успешна, возвратите фактическое число байтов, помещенных на поток.
Если была ошибка при записи в поток, возвратитесь-1.
Если поток имеет фиксированную длину и достиг своей способности, возвратите нуль.
-
Возвратиться
YES
true
если поток может в настоящее время принимать больше данных,NO
false
если это не может. Если Вы хотите быть семантически совместимыми сNSOutputStream
, возвратитьсяYES
true
если запись должна быть опробована, чтобы определить, доступно ли пространство.
Оператор импорта
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 *)
buffer
capacity:(NSUInteger)capacity
Параметры
buffer
Буфер поток вывода запишет в.
capacity
Размер буфера в байтах.
Возвращаемое значение
Инициализированный поток вывода, который может записать в
buffer
.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Когда число байтов, записанных в
buffer
достигcapacity
, потокstreamStatus
возвратитсяNSStreamStatusAtEnd
.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода для записи в указанный файл.
Объявление
Objective C
+ (instancetype)outputStreamToFileAtPath:(NSString *)
path
append:(BOOL)shouldAppend
Параметры
path
Путь к файлу поток вывода запишет в.
shouldAppend
YES
true
если недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NO
false
иначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
path
.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.3 и позже.
-
Создает и возвращает инициализированный поток вывода для записи в указанный URL.
Объявление
Objective C
+ (instancetype)outputStreamWithURL:(NSURL *)
url
append:(BOOL)shouldAppend
Параметры
url
URL к файлу поток вывода запишет в.
shouldAppend
YES
true
если недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NO
false
иначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
url
.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.6 и позже.
-
init (toMemory:) - initToMemory
Определяемый инициализаторВозвращает инициализированный поток вывода, который запишет в память.
Объявление
Swift
init(toMemory
toMemory
: ())Objective C
- (instancetype)initToMemory
Возвращаемое значение
Инициализированный поток вывода, который запишет потоковые данные в память.
Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Содержание потока памяти получено путем передачи константы
NSStreamDataWrittenToMemoryStreamKey
кpropertyForKey:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
init (toBuffer:capacity:) - initToBuffer:capacity:
Определяемый инициализаторВозвращает инициализированный поток вывода, который может записать в предоставленный буфер.
Объявление
Swift
init(toBuffer
buffer
: UnsafeMutablePointer<UInt8>, capacitycapacity
: Int)Objective C
- (instancetype)initToBuffer:(uint8_t *)
buffer
capacity:(NSUInteger)capacity
Параметры
buffer
Буфер поток вывода запишет в.
capacity
Размер буфера в байтах.
Возвращаемое значение
Инициализированный поток вывода, который может записать в
buffer
.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Когда число байтов, записанных в
buffer
достигcapacity
, потокstreamStatus
возвратитсяNSStreamStatusAtEnd
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает инициализированный поток вывода для записи в указанный файл.
Объявление
Swift
convenience init?(toFileAtPath
path
: String, appendshouldAppend
: Bool)Objective C
- (instancetype)initToFileAtPath:(NSString *)
path
append:(BOOL)shouldAppend
Параметры
path
Путь к файлу поток вывода запишет в.
shouldAppend
YES
true
если недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NO
false
иначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
path
.Обсуждение
Поток должен быть открыт, прежде чем он сможет использоваться.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
init (URL:append:) - initWithURL:append:
Определяемый инициализаторВозвращает инициализированный поток вывода для записи в указанный URL.
Объявление
Swift
init?(URL
url
: NSURL, appendshouldAppend
: Bool)Objective C
- (instancetype)initWithURL:(NSURL *)
url
append:(BOOL)shouldAppend
Параметры
url
URL к файлу поток вывода запишет в.
shouldAppend
YES
true
если недавно записанные данные должны быть добавлены к какому-либо существующему содержанию файла,NO
false
иначе.Возвращаемое значение
Инициализированный поток вывода, который может записать в
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
Обсуждение
YES
true
если получатель может быть записан в или если запись должна быть опробована, чтобы определить, доступно ли пространство,NO
false
иначе.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.
-
Пишет содержание буфера предоставленных данных к получателю.
Объявление
Objective C
- (NSInteger)write:(const uint8_t *)
buffer
maxLength:(NSUInteger)length
Параметры
buffer
Данные для записи.
length
Длина буфера данных, в байтах.
Возвращаемое значение
Число байтов, фактически записанных, или
-1
если происходит ошибка. Больше информации об ошибке может быть получено сstreamError
. Если получатель является потоком фиксированной длины и достиг его способности,0
возвращается.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.3 и позже.