4
4

2 に答える 2

3

特定のホストの到達可能性を確認したい場合は、次のコードを使用できます。

Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];

ここで、サーバー名をホスト名として渡して、到達可能性を確認できます。それはうまくいくはずです。詳細については、アップルのドキュメントを確認してください。

表示されるエラー メッセージについてはSystemConfiguration.framework、プロジェクトに追加してみてください。それでも問題が解決しない場合は、アーキテクチャ armv7 の未定義シンボル: "_SCNetworkReachabilityCreateWithAddress" を確認してください。

于 2012-12-25T02:41:09.443 に答える
0

didFinishLaunchingWithOptions メソッドに次のように入力します。

self.internetReach= [Reachability reachabilityWithHostName:@"your host name e.g.www.apple.com"];

[internetReach startNotifier];


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


[self performSelector:@selector(reachabilityChanged:) withObject:[NSNotification notificationWithName:kReachabilityChangedNotification object:internetReach]];

これは以下のメソッドを呼び出します

- (void)reachabilityChanged:(NSNotification*)note

{

Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);

if(curReach == self.internetReach)
{
    NetworkStatus netStatus = [curReach currentReachabilityStatus];
    switch (netStatus)
    {
        case ReachableViaWiFi:
        {            
            isInternetConnectionAvilable=YES;
            if(isNetworkNotifierCalledOnce)
            {
                UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Message!" message:@"Internet Available Now" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [alert show];
                [alert release];
            }
            break;
        }

        case NotReachable:
        {     

            isInternetConnectionAvilable=NO;

            UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Message!" message:@"No Internet Connectivity" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

            [alert show];

            [alert release];

            break;
        }
    }

}

isNetworkNotifierCalledOnce=YES;

}

于 2012-12-25T07:24:23.093 に答える