我在iphone应用程序中有一个连接到服务器的NSInputStream和NSOutputStream。我可以毫无问题地读取和写入数据到套接字。问题是我有一个断开连接按钮,当我尝试在任一流上调用close时它会挂起应用程序。我猜我试图在错误的时间打电话,但我不确定到底是什么时候。
答案 0 :(得分:2)
很可能你收到后没有保留你的输入和输出流:)我有完全相同的问题,但它花了我很多时间来找到解决方案:)
答案 1 :(得分:1)
答案 2 :(得分:0)
保留NSOutputStream解决了我的问题,希望它对其他人有帮助。示例代码使用ARC编写,因此不再需要保留,但如果不使用ARC,则必须保留。
NSOutputStream *outputStream = (NSOutputStream *)CFBridgingRelease(writeStream);
**[outputStream retain];**
[outputStream setDelegate:self];
[outputStream scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[outputStream open];