使用 blocks 实现的 Reachability。一行代码实现。当网络状态改变时,它会进入块。
在实现此功能之前,您需要将 "SystemConfiguration" 框架添加到您的项目中。
提供了一些连接状态。
typedef NS_ENUM(NSInteger, SWNetworingReachabilityStatus) {
SWNetworkReachabilityStatusNotReachable = 0,
SWNetworkReachabilityStatusReachableViaWWAN = 1,
SWNetworkReachabilityStatusReachableViaWiFi = 2,
};
当调用 getCurrentNetworkStatus 方法时,它将返回当前状态。
if ([SWReachability getCurrentNetworkStatus] == SWNetworkReachabilityStatusNotReachable) {
statusLbl.text = @"Connection not avaialbe.";
}else if ([SWReachability getCurrentNetworkStatus] == SWNetworkReachabilityStatusReachableViaWiFi){
statusLbl.text = @"Wifi is uisng";
}else if ([SWReachability getCurrentNetworkStatus] == SWNetworkReachabilityStatusReachableViaWWAN){
statusLbl.text = @"WWAN is uisng";
}
当改变通知时,SwReachability 将提供 block,所以可以少写一些通知处理代码。
[SWReachability checkCurrentStatus:^(SWNetworingReachabilityStatus currentStatus) {
//you can get current status
} statusChange:^(SWNetworingReachabilityStatus changedStatus) {
//when change status this will fire and you can identify current status
}];
请看以下示例
[SWReachability checkCurrentStatus:^(SWNetworingReachabilityStatus currentStatus) {
//you can get current status
if (currentStatus == SWNetworkReachabilityStatusNotReachable) {
notificationStatusLbl.text = @"Connection not avaialbe.";
}else if (currentStatus == SWNetworkReachabilityStatusReachableViaWiFi){
notificationStatusLbl.text = @"Wifi is uisng";
}else if (currentStatus == SWNetworkReachabilityStatusReachableViaWWAN){
notificationStatusLbl.text = @"WWAN is uisng";
}
} statusChange:^(SWNetworingReachabilityStatus changedStatus) {
//when change status this will fire and you can identify current status
if (changedStatus == SWNetworkReachabilityStatusNotReachable) {
notificationStatusLbl.text = @"Connection not avaialbe.";
}else if (changedStatus == SWNetworkReachabilityStatusReachableViaWiFi){
notificationStatusLbl.text = @"Wifi is uisng";
}else if (changedStatus == SWNetworkReachabilityStatusReachableViaWWAN){
notificationStatusLbl.text = @"WWAN is uisng";
}
}];
SWReachability 由 SkyWite 所有并维护。
SWReachability 是由 saman kumara ([email protected]) 创建的
如果您认为您已经发现 SWReachability 的安全漏洞,您应尽快通过电子邮件将其报告给 [email protected]。请不要将其发布在任何公开的问题跟踪器上。
此代码可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。