[英]How to use NSFileHandle's 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];
}
只有當我嘗試同步寫入句柄[_incomingHandle writeData:dataToSend]
它,這是沒有意義的。 調用它之后會拋出異常:EXC_BAD_INSTRUCTION
*** Terminating app due to uncaught exception 'NSFileHandleOperationException', reason:
'*** -[NSConcreteFileHandle writeData:]: Resource temporarily unavailable'
我也嘗試逐個發送數據。 沒運氣。
有沒有人成功使用過這家酒店?
嗯,你有一個我可以嘗試的示例項目嗎? 我沒有遇到任何問題,即使在做嵌套處理程序等愚蠢的事情時也是如此。 顯示它不起作用的測試用例可能有助於找出問題所在。
您可能遇到的一個問題是在NSFileHandle中使用dispatch_io將修改您傳入的任何fd的屬性。這可以說是NSFileHandle中的一個錯誤,但現在是正確的:/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.