gpt4 book ai didi

objective-c - 如何使用NSFileHandle的writeabilityHandler?

转载 作者:太空狗 更新时间:2023-10-30 03:45:59 29 4
gpt4 key购买 nike

从 OS X 10.7 和 iOS 5.0 开始,NSFileHandle 有两个新属性:readabilityHandler 和 writeabilityHandler。我尝试使用 writeabilityHandler,但没有成功。文档很奇怪,看起来他们复制粘贴了 readabilityHandler 的描述并将单词 read 替换为 write

根据文档,分配 block 最终应该调用 block 。它不是。

- (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];
}

仅当我尝试同步写入句柄时才会调用它 [_incomingHandle writeData:dataToSend] 这没有意义。调用后抛出异常:EXC_BAD_INSTRUCTION

*** Terminating app due to uncaught exception 'NSFileHandleOperationException', reason:
'*** -[NSConcreteFileHandle writeData:]: Resource temporarily unavailable'

我也尝试过一段一段地发送数据。运气不好。

有人成功使用过这个属性吗?

最佳答案

嗯,你有我可以尝试的示例项目吗?我没有遇到任何问题,即使在做嵌套处理程序等愚蠢的事情时也是如此。显示它不起作用的测试用例可能有助于找出问题所在。

您可能遇到的一个问题是,在 NSFileHandle 中使用 dispatch_io 会修改您传入的任何 fd 的属性。这可以说是 NSFileHandle 中的一个错误,但现在是这样:/

关于objective-c - 如何使用NSFileHandle的writeabilityHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871061/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com