在iOS应用中加载http://www.google.com网址时出现问题

时间:2013-03-18 06:27:06

标签: iphone objective-c xcode

我在第一个iOS应用程序(差不多3年前)中使用以下代码检查互联网连接。

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
}

问题在于印度和美国它正在进入其他条件,但在比利时它将进入如果条件并且投掷错误。那么谷歌在比利时是否有任何限制?

如果标记错误,请指导我。在我当前的版本中,通过使用Rechability类来检查这个问题来解决这个问题。我想知道它。提前谢谢。

3 个答案:

答案 0 :(得分:0)

作为第一步,请查看编码。

您可以通过插入

在创建connectionstring之后立即记录编码
NSLog(@"encoding: %@", [NSString localizedNameOfStringEncoding:encoding]);

进入你的代码。

为了进一步调试,您可以先尝试将url加载到NSData对象中,然后检查数据,最后从数据中创建一个NSString。

答案 1 :(得分:0)

替代解决方案:检查互联网连接使用apple提供的Reachability类。 下载Apple Sample Here,将Reachability类添加到您的项目中。

- (BOOL)isConnected
{
    Reachability *reachability = [Reachability reachabilityForInternetConnection];
    NetworkStatus networkStatus = [reachability currentReachabilityStatus];
    return !(networkStatus == NotReachable);
}

答案 2 :(得分:0)

使用任何本地客户端服务器测试网址进行互联网检查,而不是使用google.com,相对于任何其他互联网验证方式,它也会非常快速响应。