このようにobacherverをReachabilityメソッドに追加します。
1)[NSNotificationCenter defaultCenter] addObserver:自己セレクタ:@selector(reachabilityChanged :) name:kReachabilityChangedNotificationオブジェクト:なし];
アプリがバックグラウンドモードで開くと自動的に呼び出され、reachabilityChangedが呼び出されます。
2)[[NSNotificationCenter defaultCenter] postNotificationName:@ "ChangeInternetConnection"オブジェクト:なし];
ChangeInternetConnectionあなたはインターネットがそれは状況の変化するときの状態を得るためにあなたののViewControllerにオブザーバを追加する必要があります。
- (void) checkInternetConnetion {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
//NSString *remoteHostName = @"www.apple.com";
self.internetReachability = [Reachability reachabilityForInternetConnection];
[self.internetReachability startNotifier];
[self updateInterfaceWithReachability:self.internetReachability];
}
#pragma mark - Reachability Methods
- (void)updateInterfaceWithReachability:(Reachability *)reachability {
if (reachability == self.internetReachability) {
[self checkStatus:reachability];
}
if (reachability == self.wifiReachability) {
[self checkStatus:reachability];
}
}
-(void)checkStatus :(Reachability *)reachability {
NetworkStatus netStatus = [reachability currentReachabilityStatus];
BOOL connectionRequired = [reachability connectionRequired];
NSString* statusString = @"";
switch (netStatus) {
case NotReachable: {
self.isInternetOn = FALSE;
break;
}
case ReachableViaWWAN: {
self.isInternetOn = TRUE;
break;
}
case ReachableViaWiFi: {
self.isInternetOn = TRUE;
break;
}
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"ChangeInternetConnection" object:nil];
}
- (void) reachabilityChanged:(NSNotification *)note {
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
[self updateInterfaceWithReachability:curReach];
}
到達可能性は、状態が変化したときに実行されるコールバックを提供します。それを使用してください。 – Avi