을 iPhone 응용 프로그램에서 읽는 중, wifi를 통한 소켓 연결이 있으며 inputStream에서 읽고 outputStream에 쓸 필요가 있습니다. 문제는 스트림 관리가 이벤트 중심적이며 읽기 전에 NSStreamEventHasBytesAvailable 이벤트를 기다려야한다는 것입니다. 그래서 handleEvent : eventCode 대리자 메서드 외부에서 읽는 것을 알 수는 없습니다. NSStream에서 대리자 메서드 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;
}
}
}
내가 읽을 수 있다고 생각 \ 위임 메서드 내에서 쓰기,하지만 그 밖에서 \ 여러 번 읽어야합니다.
도움말! 감사합니다.