0

ARC に適合していない従来の Apple 到達可能性クラスがあります。それはネットワークをかなりうまく定義していますが、私が理解できないいくつかの間違いがあります。クラス全体を変更せず、別のクラスのメソッドに、接続を定義する次のメソッドを実装しました。BOOLインターネットが利用可能になるたびに変化する私の値は次のとおりです。

- (BOOL) checkForInternetConnection {

    [self checkNetworkStatus:nil];
    if (isConnection || is3G) {
        return YES;
    } else {
        return NO;
    }
}

標準の到達可能性メソッドは次のとおりです。

-(void) checkNetworkStatus:(NSNotification *)notice
{

    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
    switch (internetStatus)
    {
        case NotReachable:
        {
            isConnection = NO;
            is3G = NO;
        }
        case ReachableViaWiFi:
        {
            isConnection = YES;
            is3G = NO;
            break;
        }
        case ReachableViaWWAN:
        {
            NSLog(@"Connected via 3G");
            is3G = YES;
            break;
        }
    }

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
    switch (hostStatus)
    {
        case NotReachable:
        {
            isConnection = NO;
            is3G = NO;
            NSLog(@"No Network");
            break;
        }
        case ReachableViaWiFi:
        {
            NSLog(@"Connected via WiFi");
            isConnection = YES;
            is3G = NO;
            break;
        }
        case ReachableViaWWAN:
        {
            NSLog(@"Connected via 3G");
            is3G = YES;
            break;
        }
    }
}

NSLog私が得ている問題は、私が得た出力によく見られます:

2012-12-24 11:19:41.045 Custom Queue[1723:907] Connected via 3G
2012-12-24 11:19:41.046 Custom Queue[1723:907] No Network
2012-12-24 11:19:41.047 Custom Queue[1723:907] Connected via 3G
2012-12-24 11:19:41.048 Custom Queue[1723:907] No Network

数秒後、すべてが順調であることが通知されます。

2012-12-24 11:20:11.101 Custom Queue[1723:907] Connected via 3G
2012-12-24 11:20:11.112 Custom Queue[1723:907] Connected via 3G
2012-12-24 11:20:11.113 Custom Queue[1723:907] Connected via 3G

しかし、ホストに到達できないと考え、接続がないというメッセージを表示するという事実のために、インターネットが利用できないときに起動する別の機能があります。

「ネットワークがありません」という時折のメッセージを表示せずに、インターネット接続をより高速に認識するように変更するにはどうすればよいですか?

4

1 に答える 1

1

Tony Millionの Reachability バージョンを使用することになりました。それは素晴らしく、使いやすいです。さらに、ARC と iOS 5 (およびそれ以降) に対応しています。

ここで入手できます:

https://github.com/tonymillion/到達可能性

ありがとう、トニー!

于 2012-12-24T09:27:08.900 に答える