Dav*_*eyl 6 objective-c nsfilehandle objective-c-blocks ios5 osx-lion
从OS X 10.7和iOS 5.0开始,NSFileHandle有两个新属性:readabilityHandler和writeabilityHandler.我试过使用writeabilityHandler,但没有运气.文档很奇怪,它看起来像是readabilityHandler的复制粘贴描述,并用write替换了单词read.
根据文档分配块最终应该调用块.它不是.
- (void)sendResponse:(NSData*)dataToSend
{
_incomingHandle.writeabilityHandler =
^(NSFileHandle* fileHandle)
{
[fileHandle writeData:dataToSend]; // exception is thrown here
fileHandle.writeabilityHandler = nil;
};
// Above block is not called without this line:
//[_incomingHandle writeData:dataToSend];
}
Run Code Online (Sandbox Code Playgroud)
只有当我尝试同步写入句柄时才会调用它,这是[_incomingHandle writeData:dataToSend]没有意义的.调用它之后会抛出异常:EXC_BAD_INSTRUCTION
*** Terminating app due to uncaught exception 'NSFileHandleOperationException', reason:
'*** -[NSConcreteFileHandle writeData:]: Resource temporarily unavailable'
Run Code Online (Sandbox Code Playgroud)
我也尝试逐个发送数据.没运气.
有没有人成功使用过这家酒店?
嗯,你有一个我可以尝试的示例项目吗?我没有遇到任何问题,即使在做嵌套处理程序之类的愚蠢事情时也是如此。显示它不起作用的测试用例可能有助于找出问题所在。
您可能遇到的一个问题是,在 NSFileHandle 中使用dispatch_io 将修改您传入的任何 fd 的属性。这可以说是 NSFileHandle 中的一个错误,但目前是这样:/
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |