в приложении для iPhone у меня есть подключение к сокету через Wi-Fi, и мне нужно читать из inputStream и записывать в outputStream. Проблема в том, что управление потоком управляется событиями, и мне приходится ждать события NSStreamEventHasBytesAvailable перед чтением. Поэтому я не могу знать при чтении\записи вне метода делегата handleEvent:eventCode.
Я попробовал цикл 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;
}
}
}
Я думаю, что мог бы читать\писать внутри метода делегата, но мне нужно много раз читать\писать вне его.
Помощь! Спасибо