小编Dav*_*eyl的帖子

如何使用NSFileHandle的writeabilityHandler?

从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)

我也尝试逐个发送数据.没运气.

有没有人成功使用过这家酒店?

objective-c nsfilehandle objective-c-blocks ios5 osx-lion

6
推荐指数
1
解决办法
2275
查看次数