首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用NSFileHandle的writeabilityHandler?

如何使用NSFileHandle的writeabilityHandler?
EN

Stack Overflow用户
提问于 2011-10-24 03:33:22
回答 1查看 2.7K关注 0票数 6

从OSX10.7和iOS 5.0开始,NSFileHandle有两个新的属性: readabilityHandler和writeabilityHandler。我试着使用writeabilityHandler,但没有运气。文档很奇怪,看起来它们复制粘贴了对readabilityHandler的描述,并将word read替换为 with

根据文档,分配块最终应该调用块。事实并非如此。

代码语言:javascript
复制
- (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];
}

只有当我尝试同步写入句柄时才调用它,这是没有意义的。调用它之后,它会抛出一个异常: EXC_BAD_INSTRUCTION

代码语言:javascript
复制
*** Terminating app due to uncaught exception 'NSFileHandleOperationException', reason:
'*** -[NSConcreteFileHandle writeData:]: Resource temporarily unavailable'

我还试着把数据一片片地发送出去。不走运。

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

EN

回答 1

Stack Overflow用户

发布于 2012-01-17 06:53:10

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

您可能遇到的一个问题是,在dispatch_io中使用NSFileHandle将修改您传入的任何fd的属性。这可以说是NSFileHandle中的一个bug,但目前是正确的:/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7871061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档