作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里我有一个非常有趣的话题可供讨论,或者你可以说我需要更好的方法的建议。
这是我的代码
+ (BOOL) isConnected
{
BOOL flag = TRUE;
if (![self isHostReachable])
{
flag = FALSE;
NSString* alertTitle= @"";
NSString* alertMessage= @"";
if (![self isInternetReachable])
{
alertTitle = @"Network unavailable";
alertMessage = @"We can't connect to the Internet. Check your settings/connection.";
}
else
{
alertTitle = @"Server not responding";
alertMessage = @"Server not responding at the moment. Please try again later. Sorry for inconvenience";
}
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:alertTitle
message:alertMessage
delegate:self
cancelButtonTitle:@"Close"
otherButtonTitles:nil];
[alert show];
}
return flag;
}
+ (BOOL) isInternetReachable
{
Reachability *netReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus netSat = [netReachability currentReachabilityStatus];
return (!(netSat == NotReachable));
}
+ (BOOL) isHostReachable
{
Reachability *hostReachability = [Reachability reachabilityWithHostname: [Connection returnHostName]];
NetworkStatus netSat = [hostReachability currentReachabilityStatus];
return (!(netSat == NotReachable));
}
在我的代码中,我过去常常调用“isConnected”方法来检查连接状态,然后再向服务器请求数据。
在该方法中,我首先检查主机可达性。我这样做的想法是为了节省计算时间。
但通常看到代码首先验证netConnectivity,如果可以,然后验证hostReachability。
所以大多数时候都是两次计算,这与我完成任务的方式形成鲜明对比。
请建议您认为哪种方法更好?
最佳答案
netConnectivity 将验证网络是否正常,并且没有由于 100 个原因中的任何一个而关闭,然后验证主机是否可以访问,因为服务器可能由于某些问题而关闭。
如果网络被验证为连接失败,它将首先排除验证主机的可能性。反之亦然,但事实并非如此..我希望这对您有用。干杯!!
关于iphone - 应首先验证什么 - hostReachability 还是 netReachability?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12508472/
这里我有一个非常有趣的话题可供讨论,或者你可以说我需要更好的方法的建议。 这是我的代码 + (BOOL) isConnected { BOOL flag = TRUE; if (!
我是一名优秀的程序员,十分优秀!