利用Reachability实现网络状态监听
時刻檢查設備的聯網狀態,并作出相應的處理,基本上是所有的聯網程序需要考慮的問題,以前自己寫個NSTimer 每多少賣哦循環一次,后來覺得這個思維有些不爽,就直接用Reachability來實現了
首先考慮要在每一個類都能用這個網絡的判定結果,可以用一個單例寫,怕麻煩的話 直接寫在 AppDelegate也行。
.h的操作
@property (strong,nonatomic)Reachability *reachiability;
@property (assign,nonatomic)BOOL isReachable;//是否可用
@property (assign,nonatomic)NetworkStatus status;//判定狀態用的
.m里
?//開啟網絡狀況的監聽
? ? [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationobject:nil];
? ??self.reachiability?= [ReachabilityreachabilityWithHostname:@"www.baidu.com"];
? ? [self.reachiability?startNotifier];? //開始監聽,會啟動一個run loop
OK 剩下的就是實現reachabilityChanged:這個帶有參數的方法了
//網絡鏈接改變時會調用的方法
-(void)reachabilityChanged:(NSNotification *)note
{
? ? Reachability *currReach = [note object];
? ? NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
? ? //對連接改變做出響應處理動作
? ? self.status = [currReach currentReachabilityStatus];
? ? //如果沒有連接到網絡就彈出提醒實況
? ? self.isReachable = YES;
? ??switch (self.status) {
? ? ? ? case?NotReachable:
? ? ? ? {
? ? ? ? ? //各種操作
? ? ? ? ? ? self.isReachable = NO;
? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? caseReachableViaWiFi:
? ? ? ? {
? ? ? ? ??//各種操作
? ? ? ? ??self.isReachable = YES;
? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? caseReachableViaWWAN:
? ? ? ? {
? ? ? ? ? ? //各種操作
? ? ? ? ? ? self.isReachable = YES;
? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? break;
? ? }
}
在其他類里就可以用了~ 想判斷是否有網絡可以用?isReachable ?想判斷是什么網絡可以用status~~
轉載于:https://www.cnblogs.com/superhappy/archive/2013/04/24/3039682.html
總結
以上是生活随笔為你收集整理的利用Reachability实现网络状态监听的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打火机会不会引起火灾?
- 下一篇: smarty调试方法