做iOS开发时,我们需要监控/监听网络状况,苹果提供了Reachability.h, Reachability.m。
导入Reachability.h
我们可以在 MainViewController的viewDidLoad方法内部写上:
[self checkReachability];之后,具体方法如下
#pragma mark
#pragma mark Reachability Methods
#pragma mark
- (void)checkReachability
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.reachability = [Reachability reachabilityForInternetConnection];
[self.reachability startNotifier];
[self updateInterfaceWithReachability:self.reachability];
}
/*!
* Called by Reachability whenever status changes.
*/
- (void) reachabilityChanged:(NSNotification *)note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
[self updateInterfaceWithReachability:curReach];
}
- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
NetworkStatus status = [reachability currentReachabilityStatus];
AppDelegate *appDelegate = ((AppDelegate *) [[UIApplication sharedApplication] delegate]);
if(status == NotReachable)
{
//No internet
NSLog(@"No Internet");
appDelegate.isNetworkReachable = NO;
[_reachabilityImage setImage:[UIImage imageNamed:@"stop-32.png"]];
}
else if (status == ReachableViaWiFi)
{
//WiFi
NSLog(@"Reachable WIFI");
appDelegate.isNetworkReachable = YES;
[_reachabilityImage setImage:[UIImage imageNamed:@"Airport.png"]];
}
else if (status == ReachableViaWWAN)
{
//3G
NSLog(@"Reachable 3G");
appDelegate.isNetworkReachable = YES;
[_reachabilityImage setImage:[UIImage imageNamed:@"WWAN5.png"]];
}
}
本文介绍如何使用苹果提供的Reachability库来监测iOS应用中的网络连接状态。通过简单的代码示例展示了如何实现网络变化的通知机制,并根据不同网络类型更新用户界面。
710

被折叠的 条评论
为什么被折叠?



