在 iPhone 应用程序中,我有一个通过 wifi 的套接字连接,我需要从 inputStream 读取并写入 outputStream。问题是流管理是事件驱动的,我必须等待事件 NSStreamEventHasBytesAvailable 才能读取。所以我不知道什么时候在handleEvent:eventCode委托方法之外读\写。
我尝试了一个while循环,但我意识到在while循环期间应用程序没有收到委托消息并且永远不会停止:
伪代码:
-(void) myFunction {
canRead=NO;
[self writeToStream:someData];
while(!canRead) { };
readData=[self readFromStream];
}
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
switch(eventCode) {
case NSStreamEventHasBytesAvailable: {
canRead=YES;
break;
}
}
}
我想我可以在委托方法内读\写,但在此之外我需要读\写很多次。
帮助!谢谢