1

NSStreamデリゲートを実装しました。Witapアプリケーションと同じものを実装しました

handleEventその中で、デリゲートを実装しました

- (void) stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode{

  switch(eventCode) {

           case NSStreamEventOpenCompleted:
              {
                 [tcpServer release];
                 tcpServer = nil;               
                 break;
              }
          case NSStreamEventHasBytesAvailable:    
              {
                  //done my stuff here
              }
         case NSStreamEventErrorOccurred:    
              {


    UIAlertView *wifiLostAlert = [[UIAlertView alloc] initWithTitle:@"Wifi
 connection error" message:@"" delegate:nil cancelButtonTitle:@"Continue" otherButtonTitles:nil];
                     [wifiLostAlert show];
                     [wifiLostAlert release];
                      wifiLostAlert = nil;

              }

    }

私のクライアントサイトでは、彼らは問題を次のように報告しました

「学習者にメッセージを送信しようとしたり、デバイスを同期させようとしたりすると、次のメッセージが何度も表示されました。「Wifi 接続エラー。2 つの異なるネットワークで同じことが起こり、ネットワークの信号がかなり強い場合でも、すぐには復旧しません。」

残念ながら、私のサイトではこの問題を再現できず、別のクライアント サイトでも問題なく動作しています!!.

問題に関する手がかりはあります。これに関するヘルプをいただければ幸いです。

ありがとうございました。

4

1 に答える 1

4

実際に発生しているエラーに関する詳細情報を表示する更新バージョンをクライアントに提供することをお勧めします。

次を使用して、エラーに関する詳細情報を取得できます。

NSError* error = [stream streamError];

NSErrorの詳細については、NSErrorクラスリファレンスを参照してください。

あなたの場合、このようなことがうまくいくかもしれません:

NSString* errorMessage = [NSString stringWithFormat:@"%@ (Code = %d")",
                                   [error localizedDescription],
                                   [error code]];

次にUIAlertView、これに変更します。

UIAlertView *wifiLostAlert = [[UIAlertView alloc] 
                     initWithTitle:@"Stream Error" 
                           message:errorMessage
                          delegate:nil         
                 cancelButtonTitle:@"Continue" 
                 otherButtonTitles:nil];

これは問題を解決しませんが、根本的な原因についてのより多くの情報をあなたとあなたのクライアントの両方に与えるでしょう。

たとえば、「接続が拒否されました」というエラーが表示される場合があります。これは、WiFi信号強度ではなく、サーバー側のソフトウェアに問題があることを示しています。

幸運を!

于 2012-07-07T02:27:35.923 に答える