イベント内のストリームにデータを書き込んでいます:
- (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 のドキュメントによると、出力ストリームには何も書き込まれないため、このイベントは正しく呼び出されます。何か案は?