Начиная с OS X 10.7 и iOS 5.0 NSFileHandle имеет два новых свойства: readabilityHandler и writeabilityHandler.Я пытался использовать writeabilityHandler, но не повезло.Документация странная, похоже, что они вставили скопированное описание readabilityHandler и заменили слово read на write .
В соответствии с документацией назначение блока должно в конечном итоге вызватьблок.Это не.
- (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'
Я также попытался отправить данные по частям.Не повезло.
Кто-нибудь успешно использовал это свойство?