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