我正在使用块从 a NSFileHandle(来自 a )读取数据:NSPipereadabilityHandler
fileHandle.readabilityHandler = ^( NSFileHandle *handle ) {
[self processData: [handle availableData]];
}
这很好用,我得到了我期望提供给我的processData方法的所有数据。问题是我需要知道读取最后一块数据的时间。availableData如果它到达文件末尾,则应该返回一个空NSData实例,但问题是在 EOF 上不会再次调用可达性处理程序。
我找不到任何关于如何在 EOF 上获得某种通知或回调的信息。那么我错过了什么?Apple 真的提供了没有 EOF 回调的异步读取 API 吗?
顺便说一句,我不能使用基于 runloop 的readInBackgroundAndNotify方法,因为我没有可用的 runloop。如果我不能让它与NSFileHandleAPI 一起工作,我可能会直接使用调度源来执行 IO。