文章出處
文章列表
類似于一個網絡狀況的探針。 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; hostReach = [[Reachability reachabilityWithHostName: @"hubj.cnblogs.com"] retain]; [hostReach startNotifier]; wifiReach=[[Reachability reachabilityForLocalWiFi]retain]; [wifiReach startNotifier]; - (void)reachabilityChanged: (NSNotification* )note { Reachability* curReach = [note object]; NSParameterAssert([curReach isKindOfClass: [Reachability class]]); NetworkStatus netStatus = [curReach currentReachabilityStatus]; switch (netStatus) { case NotReachable: { NSLog(@"Access Not Available"); break; } case ReachableViaWWAN: { NSLog(@"Reachable WWAN"); break; } case ReachableViaWiFi: { NSLog(@"Reachable WiFi"); break; } } } 判斷網絡是否連接 /*** * 此函數用來判斷是否網絡連接服務器正常 * 需要導入Reachability類 */ + (BOOL)isExistenceNetwork { BOOL isExistenceNetwork; Reachability *reachability = [Reachability reachabilityWithHostName:@""]; // 測試服務器狀態 switch([reachability currentReachabilityStatus]) { case NotReachable: isExistenceNetwork = FALSE; break; case ReachableViaWWAN: isExistenceNetwork = TRUE; break; case ReachableViaWiFi: isExistenceNetwork = TRUE; break; } return isExistenceNetwork; } 實時通知網絡狀況 /* * 在應用委托的方法didFinishLaunchingWithOptions中添加 */ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; reachability = [[Reachability reachabilityWithHostName:@"www.baidu.com"] retain]; [reachability startNotifier]; ........ return YES; /** *此函數通過判斷聯網方式,通知給用戶 */ - (void)reachabilityChanged:(NSNotification *)notification { Reachability *curReachability = [notification object]; NSParameterAssert([curReachability isKindOfClass:[Reachability class]]); NetworkStatus curStatus = [curReachability currentReachabilityStatus]; if(curStatus == NotReachable) { [DOIN_Util logFax:@"連接失敗"]; } }
文章列表
全站熱搜