1、注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityIsChanged:) name:kReachabilityChangedNotification object:nil];
2、创建Reachability实例对象并开启通知
struct sockaddr_in address;
memset(&address, 0, sizeof(address));
address.sin_len = sizeof(address);
address.sin_family = AF_INET;
address.sin_port = htonl(IP_PORT);
address.sin_addr.s_addr = htons(inet_addr(IP_Address));
reachability = [[Reachability reachabilityWithAddress:&address] retain];
[reachability startNotifier];//开启网络检测
3、网络状态改变接受通知处理
-(void)reachabilityIsChanged:(NSNotification *)notify {
Reachability *curReach = [notify object];
NetworkStatus networkStatus = [curReach currentReachabilityStatus];
if (networkStatus == NotReachable) { //无网络状态
//TODO
} else { //有网络状态,3G或wifi
//TODO
}
}
4、关闭通知并释放对象
[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
if (reachability) {
[reachability stopNotifier]; //关闭网络检测
[reachability release];
}
本文介绍了一种通过Objective-C实现的网络状态实时监测方法,包括网络连接的建立、网络状态变化的通知接收以及网络状态改变时的处理逻辑。通过设置网络通知监听,实现了在网络状态发生改变时触发相应的操作。
4913

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



