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 回答