0

iOS の到達可能性に関して、この非常に奇妙な問題が発生しています。デバイスでアプリをデバッグで実行すると、問題はまったくなく、アプリは正常に動作します。しかし、ストアまたは TestFlight からインストールすると、Wi-Fi を使用していても No Coverage エラーが発生しますが、これは特定のアクションを実行しようとした場合に限られます。その特定のアクションを実行しない場合、実行するまでアプリは正常に動作します。

これは、到達可能性を扱う私のコードの一部です。

- (void)connectionReachabilityChanged:(NSNotification *)notice {
  NetworkStatus status = [self.connectionReachability currentReachabilityStatus];
  if (status == NotReachable) {
    self.inCoverage = NO;
  } else {
    self.inCoverage = YES;
  }
}

- (void)hostReachabilityChanged:(NSNotification *)notice {
  NetworkStatus status = [self.hostReachability currentReachabilityStatus];
  if (status == NotReachable) {
    self.inCoverage = NO;
  } else {
    self.inCoverage = YES;
  }
}

- (void)displayAlertOfType:(AlertType)type {
  if (type == AlertTypeNoCoverage) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"No coverage"
                                                    message: @"You current have no data coverage, try again later"
                                                   delegate: self
                                          cancelButtonTitle: @"OK"
                                          otherButtonTitles: nil];
    [alert show];
  }

  if (type == AlertTypeOperationNotCompleted) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Whoops... Something went wrong" 
                                                    message:@"The operation couldn't be completed, try again later" 
                                                   delegate:self 
                                          cancelButtonTitle:@"OK" 
                                          otherButtonTitles:nil];
    [alert show];
  }

}
4

1 に答える 1

0
 Reachability *reachability = [Reachability sharedReachability];
 [reachability setHostName:@"http://www.google.com/"]; 
 NetworkStatus remoteHostStatus = [reachability remoteHostStatus];

if(remoteHostStatus == NotReachable) {
 //no internet connection

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"No coverage"
                                                    message: @"You current have no data coverage, try again later"
                                                   delegate: self
                                          cancelButtonTitle: @"OK"
                                          otherButtonTitles: nil];
    [alert show];
 }
 else if (remoteHostStatus == ReachableViaWiFiNetwork) {
 //wifi connection found
 }
 else if (remoteHostStatus == ReachableViaCarrierDataNetwork) {
 //EDGE or 3G connection found
 }
于 2013-01-25T21:50:45.913 に答える