加载http://www.google.com url中的问题在iOS应用程序
问题描述:
我使用下面的代码检查我的第一个iOS应用程序(大约3年前)的互联网连接。加载http://www.google.com url中的问题在iOS应用程序
NSError *err = nil;
NSStringEncoding encoding;
NSString * connectionstring = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] usedEncoding:&encoding error:&err];
if(connectionstring.length ==0)
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Occured" message:@"No Internet Connection." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
else
{
// loading another screen
}
的问题是在印度和美国,它是进入了else条件但比利时它会进入如果条件并引发错误。那么Google在比利时是否有任何限制?
如果标记不正确,请指导我。在我目前的版本中,通过使用Rechability类来检查这个问题来解决这个问题。只是我想知道这件事。提前致谢。
答
作为第一步,请看编码。
通过插入
NSLog(@"encoding: %@", [NSString localizedNameOfStringEncoding:encoding]);
到您的代码创建的ConnectionString后即可登录编码权。
为了进一步调试,您可以尝试首先将url加载到NSData对象中,然后检查数据并最终从数据创建NSString。
答
替代解决方案:检查互联网连接使用Apple提供的Reachability类。 下载苹果示例Here,为您的项目添加Reachability类。
- (BOOL)isConnected
{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
return !(networkStatus == NotReachable);
}
答
而不是使用google.com使用互联网的任何地方的客户端服务器测试URL检查它也将是非常快的响应的比较互联网验证的任何其他方式。
谢谢大师。我在当前版本中使用了Rechability类。只是我想知道这件事。 – user247 2013-03-18 06:58:06
酷...快乐编码 - – Guru 2013-03-18 06:59:39