【发布时间】:2012-07-13 22:18:21
【问题描述】:
我正在将数据写入事件内部的流:
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode
如下(摘自 Apple 的文档):
case NSStreamEventHasSpaceAvailable:
uint8_t *readBytes = (uint8_t *)[self.outData mutableBytes];
readBytes += byteIndex;
int dataLength = [self.outData length];
unsigned int length = ((dataLength - byteIndex >= 1024) ? 1024 : (dataLength - byteIndex));
uint8_t buffer[length];
(void)memcpy(buffer, readBytes, length);
length = [self.outputStream write:(const uint8_t *)buffer maxLength:length];
byteIndex += length;
break;
然而,事件NSStreamEventEndEncountered在输出流中没有其他内容可写入时被调用,因此输出流被丢弃。我怎样才能保持这个流打开写作?根据Apple's documentation,此事件被正确调用,因为没有任何内容写入输出流。有什么想法吗?
【问题讨论】:
标签: objective-c ios cocoa stream