NSOutputStream дает -1 байт? - PullRequest
       37

NSOutputStream дает -1 байт?

0 голосов
/ 22 июля 2011
NSDictionary *bundle = [NSDictionary dictionaryWithObjectsAndKeys:message,@"message", toUserName, @"receiver",fromUserName, @"sender", nil];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:bundle];           
NSOutputStream *outStream;
[toUser getInputStream:nil outputStream:&outStream];
[outStream open];
NSInteger bytes = [outStream write:[data bytes] maxLength: [data length]];
[outStream close];

success = YES;
NSLog(@"Wrote %ld bytes", bytes);

Я получаю: Wrote -1 bytes.

1 Ответ

3 голосов
/ 22 июля 2011

Из документации по методу write:maxLength::

Возвращаемое значение
Количество фактически записанных байтов или -1 в случае ошибки.Более подробную информацию об ошибке можно получить с помощью streamError.Если получатель является потоком фиксированной длины и достиг своей емкости, возвращается 0.

Возвращаемое значение -1 означает, что произошла ошибка.Вы должны использовать [outStream streamError], чтобы получить объект NSError, сообщающий вам, что пошло не так, чтобы вы могли попытаться исправить это, или чтобы получить описание проблемы для пользователя.

...