Sve*_*ven 13 macos cocoa objective-c nsfilehandle
我正在使用块从a NSFileHandle(从a NSPipe)读取数据readabilityHandler:
fileHandle.readabilityHandler = ^( NSFileHandle *handle ) {
[self processData: [handle availableData]];
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到了我期望提供给我的processData方法的所有数据.问题是我需要知道何时读取了最后一块数据.如果它到达文件结尾,availableData则应返回一个空NSData实例,但问题是在EOF上不再调用可达性处理程序.
我找不到任何关于如何在EOF上获得某种通知或回调的信息.那我错过了什么?Apple是否真的在没有EOF回调的情况下提供异步读取API?
顺便说一下,我不能使用基于runloop的readInBackgroundAndNotify方法,因为我没有可用的runloop.如果我无法使用NSFileHandleAPI,我可能会直接使用调度源来执行IO.
恐怕NSFileHandle如果您不能使用readInBackgroundAndNotify.
我看到的两个解决方案:
readInBackgroundAndNotify.dispatch_io_*| 归档时间: |
|
| 查看次数: |
2042 次 |
| 最近记录: |