0
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

4

1 に答える 1

3

write:maxLength:メソッドのドキュメントから:

戻り値
実際に書き込まれたバイト数、またはエラーが発生した場合は -1。エラーに関する詳細情報は、streamError で取得できます。レシーバーが固定長ストリームで、その容量に達した場合は、0 が返されます。

-1 の戻り値は、エラーが発生したことを意味します。[outStream streamError]NSError オブジェクトを取得して何が問題なのかを伝えて修正を試みることができるようにするか、ユーザーのために問題の説明を取得するために使用する必要があります。

于 2011-07-22T05:21:51.917 に答える