0

アプリでネットワーク接続を確認するために到達可能性クラスを使用しています...

Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus];    
    if (netStatus==NotReachable)
    {
        NSLog(@"NR");
    }

ネットワーク ステータスがいつ変化したか (つまり、ネットワーク ステータスが到達可能から到達不能に、またはその逆に変化したとき) を見つける必要があります。

これを見つけるための代表者はいますか? 何か提案はありますか?

4

3 に答える 3

1

Apple の Reachability クラスを利用することをお勧めします。これは、Apple によるサンプルアプリです。

このリンクも確認してください。

http://www.switchonthecode.com/tutorials/iphone-snippet-detecting-network-status

于 2012-09-08T06:11:23.127 に答える
0

このフラグkReachabilityChangedNotificationを使用してネットワーク ステータスの変化を検出し、それをNSNotificationCenter

コードは次のとおりです。

NSString *host = @"https://www.apple.com"; // Put your host here

        // Set up host reach property
       hostReach = [Reachability reachabilityWithHostname:host];

                          // Enable the status notifications
                          [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
                           [hostReach startNotifier];

   - (void) reachabilityChanged: (NSNotification* )note
{
    Reachability *reachability = [note object];
    NSParameterAssert([reachability isKindOfClass:[Reachability class]]);
    if (reachability == hostReach) {
        Reachability *reach = [Reachability reachabilityForInternetConnection]; 
        NetworkStatus netStatus = [reach currentReachabilityStatus];    
        if (netStatus==NotReachable)
        {
            NSLog(@"notreacheable");
        }
        else {
            NSLog(@"reacheable");
            [[NSNotificationCenter defaultCenter]postNotificationName:@"startUpdatingTable" object:nil];
        }
    }
}
于 2012-09-25T10:06:48.810 に答える
-1

到達可能性」クラスを使用

アプリデリゲートにフラッディングメソッドを追加して、プロジェクト内の任意のウェアでこのメソッドを使用できるようにします

#import "Reachability.h"
-(BOOL)isHostAvailable
{
    //return NO; // force for offline testing
    Reachability *hostReach = [Reachability reachabilityForInternetConnection];
    NetworkStatus netStatus = [hostReach currentReachabilityStatus];
    return !(netStatus == NotReachable);
}
于 2012-09-08T06:58:14.430 に答える