如果您尝试查看设备是否可以访问互联网,您可能应该使用reachabilityForInternetConnection 而不是reachabilityWithHostName:。此外,这两个调用都需要一点时间来启动(它仍然会以毫秒为单位,但比到达下一行的 if 条件所需的时间要长。)这是一个单例类的示例使用可达性。
static NetworkManager* sharedInstance = nil;
@interface NetworkManager()
@property (nonatomic, strong) Reachability* reachability;
@end
@implementation NetworkManager
@synthesize reachability;
+ (NetworkManager*)sharedInstance
{
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [[NetworkManager alloc] init];
}
}
return sharedInstance;
}
- (id)init
{
reachability = [WYReachability reachabilityForInternetConnection];
}
- (BOOL)isNetworkReachable
{
return ([self.reachability currentReachabilityStatus] != NotReachable);
}
@end
要检查您可以使用的其他类中可访问的网络。
[[NetworkManager sharedInstance] isNetworkReachable];