1

そこで、アクティブなインターネット接続があるかどうかをアラートビューで検出します。

これはコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(reachabilityChanged:)
    name:kReachabilityChangedNotification
    object:nil];
    Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"];
    reach.reachableBlock = ^(Reachability * reachability)
    { 
     dispatch_async(dispatch_get_main_queue(), ^{
     blockLabel.text = @"";  
     });
    };
    reach.unreachableBlock = ^(Reachability * reachability)
    {
     dispatch_async(dispatch_get_main_queue(), ^{
     blockLabel.text = @"You are not connected to the Internet";
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please connect to Internet"
     message:nil
     delegate:self
     cancelButtonTitle:nil
     otherButtonTitles:nil];
     UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
     progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
            [alert addSubview:progress];
            [progress startAnimating];
            [alert show]; 
        });
    };
    [reach startNotifier];
    // Do any additional setup after loading the view, typically from a nib.
}

したがって、私のアプリケーションはインターネット接続があるかどうかを検出します。しかし、問題は、iPhoneでインターネットをオンにしてアプリケーションを開くと、インターネットに接続されていないと表示されることです。どうすればいいですか…</p>

4

3 に答える 3

1

さて、通知を使用して問題を修正します..参照用のコード

-(void)reachabilityChanged:(NSNotification*)note
{
    Reachability * reach = [note object];

    if([reach isReachable])
    {
        notificationLabel.text = @"Notification Says Reachable";
        NSLog(@"Internet is Up");
    }
    else
    {
        notificationLabel.text = @"Notification Says Unreachable";
        NSLog(@"Internet is Down");
    }
}
于 2012-11-22T20:18:34.053 に答える
0

到達可能性通知にサインアップすることで、ホストの到達可能性 (またはインターネット接続) のノンストップ チェックをいつでも実装できます。

これを行う方法の最良の例の 1 つは、SO: How to check for a active Internet Connection on iPhone SDK? にあります。

このようにして、アプリはホストが到達可能かどうかを常に認識します。

于 2012-11-22T19:59:19.227 に答える
0

Reachability クラスが SystemConfiguration API の Apple の Reachability サンプル コード ラッパーであるようには見えないため、スパース コードが何をするのかわかりません。http://developer.apple.com/library/ios/#サンプルコード/到達可能性/はじめに/Intro.html

最も単純で最も決定的なチェックは、特定の URL に対するキャッシュされていない NSURLRequest だけです (DNS 解決が機能しているかどうかをテストするだけのホスト名ではなく、決定的なテストではなく、キャッシュすることもできます)。

于 2012-11-22T20:02:04.823 に答える