如何同步调用NSStream以获得结果?
目前我正在其代理方法之一中获得异步回调
`(void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent`-
答案 0 :(得分:7)
NSStream
是一个抽象类,既不会读取数据也不会将数据写入流中。要实际访问数据,您需要一个具体的子类,例如NSInputStream
或NSOutputStream
(或NSStream
的自定义子类)。要在NSInputStream
来电read:maxLength:
中阅读数据。您可能希望使用hasBytesAvailable
轮询流,询问是否有任何新数据可用。 NSOutputStream具有类似的write:maxLength:
和hasSpaceAvailable
方法。
iOS文档强烈建议您避免轮询,并通过响应异步回调委托方法来使用运行循环调度。