多次写入NSOutputStream会导致多少事件?

问题描述:

对流中的两个NSStreamEventHasBytesAvailable(其中我处理读取的数据)执行两次写入NSOutputStream结果:handleEvent:?多次写入NSOutputStream会导致多少事件?

您是否检查过输出流上的“流编程指南”? https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Streams/Articles/WritingOutputStreams.html

在输出流,顺序为:

  1. 分配/初始化
  2. 组委托
  3. 在运行循环
  4. 开放
  5. 等待NSStreamEventOpenCompleted
  6. 等待NSStreamEventHasSpaceAvailable时间表

当收到NSStreamEventHasSpaceAvailable时(这将只响应每次写入操作而被接收一次),您可以选择执行写入操作。如果您执行写入操作,则需要等待再次写入之前接收NSStreamEventHasSpaceAvailable。执行写入时,还必须确认您尝试写入的所有内容都是实际写入的。如果写入尝试仅部分完成,则可能需要处理部分写入。

+0

当然,我做到了。我想你不明白这个问题。我想知道从管道的另一端(您执行读操作的地方)有多少个NSStreamEventHasBytesAvailable可以从两次单独写入流中产生。 – Boon 2013-03-05 19:52:32

+0

这个问题不是很清楚。你问的是输出流,而不是输入流。是的,您应该准备好在输入流中获取多个NSStreamEventHasBytesAvailable消息。 – xyzzycoder 2013-03-05 20:29:36

+0

对不起,通常你读取NSStreamEventHasBytesAvailable中的字节,这是隐含的,是的,我应该说清楚。 – Boon 2013-03-05 21:01:12