0

接続が利用可能になったらアクションをトリガーしたい。インターネット接続を手動でチェックできるソリューションがあります。私が見つけた1つの方法は、NSTimerを使用して一定の間隔でインターネット接続をチェックすることです。しかし、それをチェックする最も効果的な方法ですか?そうでない場合、これに対する正しい解決策は何ですか?

4

2 に答える 2

2

ここでは、オブザーバーを登録してリッスンする方法を説明しますkReachabilityChangedNotification。ネットワークのステータスが変更されるたびに、アプリケーションはリッスンしてプロンプトを表示します。

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityHasChanged:) name:kReachabilityChangedNotification object:nil];

    internetReachable = [[Reachability reachabilityForInternetConnection] retain];
    [internetReachable startNotifier];



-(void) reachabilityHasChanged:(NSNotification *)notice
{
    // called after network status changes
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
    switch (internetStatus)
    {
        case NotReachable:
        {
            NSLog(@"The internet is down.");


            break;
        }
        case ReachableViaWiFi:
        {
            NSLog(@"The internet is working via WIFI.");


            break;
        }
        case ReachableViaWWAN:
        {
            NSLog(@"The internet is working via WWAN.");


            break;
        }
    }
 }
于 2013-03-12T17:09:34.283 に答える
0

アップルが提供する到達可能性コードを確認します。appdelegate.mでこのメソッドを確認できます。ネットワークの変更を通知します。作業します。

//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification* )note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}
于 2013-03-12T17:03:28.263 に答える