判斷裝置網絡連接配接情況。相對于蘋果官方的Reachability,這是一個更加進階、更加好用的Reachability,支援ARC、支援block、使用GCD方式來通知網絡的變化。 [Code4App.com]
Reachability鍊:https://github.com/tonymillion/Reachability
<span style="font-size:14px;">@interface ViewController ()
@property (nonatomic,strong)Reachability* reachability;
@end</span>
<span style="font-size:14px;">- (void)viewDidLoad {
[super viewDidLoad];
// 監聽網絡狀态發生改變
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(netWorkStateChange) name:kReachabilityChangedNotification object:nil];
// 獲得Reachability對象
self.reachability = [Reachability reachabilityForInternetConnection];
// 開始監聽網絡
[self.reachability startNotifier];
}
/**
* 狀态改變
*/
- (void)netWorkStateChange
{
if ([self isEnableWif])
{
NSLog(@"WIFI");
}else if ([self isEnable3G])
{
NSLog(@"3G");
}else
{
NSLog(@"無網絡");
}
}
- (void)dealloc
{
// 停止監聽網絡
[self.reachability stopNotifier];
// 移除
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
/**
* 是否為Wif環境
*/
- (BOOL)isEnableWif
{
return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] !=NotReachable;
}
/**
* 是否為3G環境
*/
- (BOOL)isEnable3G
{
return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] !=NotReachable;
}</span>