- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我创建了一个 NSInputStream 来从文件(IOS)加载内容:
NSString* fileName = [[NSBundle mainBundle] pathForResource:@"resource" ofType:@".dat"];
NSInputStream* dataStream = [NSInputStream inputStreamWithFileAtPath:fileName];
if (dataStream == nil) {
NSLog(@"load asset failed");
return;
}
[dataStream setDelegate:self];
[dataStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
[dataStream open];
然后,添加事件处理程序:
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
switch(eventCode) {
case NSStreamEventEndEncountered: {
[stream removeFromRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
break;
}
}
}
我想捕捉事件:NSStreamEventEndEncountered,但没有发生。我只能捕获 NSStreamEventOpenCompleted 和 NSStreamEventHasBytesAvailable。
有什么问题吗?感谢您的帮助!
最佳答案
我看不出您发布的代码有任何问题。确保当你完成你自己关闭的流而不是简单地依赖于获得一个 NSStreamEventEndEncountered
通知,你可以简单地用这样的东西来做:
- (void) disconnect {
// Close all open streams
[inputStream close];
[outputStream close];
}
如果连接被流的另一端关闭,您通常只会得到 NSStreamEventEndEncountered
,这取决于您正在做的事情,这可能超出您的控制范围。
关于objective-c - 从文件读取内容时,NSInputStream 不会发生 NSStreamEventEndEncountered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437571/
我有一个使用 NSStream 进行连接的客户端-服务器应用程序。有时,当尝试打开连接时,连接的一侧在第一次尝试发送消息时会收到 NSStreamEventEndEncountered。 我使用 CF
我创建了一个 NSInputStream 来从文件(IOS)加载内容: NSString* fileName = [[NSBundle mainBundle] pathForResource:@"re
在 Cocoa 中,我设置了两个 NSThread,一个生产者和一个消费者。生产者将数据附加到 NSMutableData,接收者从该数据打开 NSInputStream 并分块读取。 生产者线程的写
我是一名优秀的程序员,十分优秀!