2013-07-13 18 views
0

我有这个NSURL像这样:的Objective-C,如果NSURL失败,则显示UIAlertView中

NSURL *url = [NSURL URLWithString:@"http://jamessuske.com/isthedomeopen/isthedomeopenGetData.php"]; 

,当我连接到互联网,它工作正常。但如果我不是(或者如果用户没有信号),我想要出现一个UIAlertView。我尝试了下面的代码(有和没有if语句),但我的应用程序崩溃。

if(!url){ 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test Message" 
                  message:@"This is a test" 
                  delegate:nil 
                cancelButtonTitle:@"OK" 
                otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
} 

我做错了什么?

我的意思是崩溃,我的意思是我的应用程序打开,并没有从网址获取数据。我没有看到任何错误,我只是得到带到一个页面,这个荧光笔:

Thread 6 
com.app.root.default-priority 
    - 0 ucol_getVersion 

在它旁边是这样的窗口在突出显示

0x17bbd32: movl 204(%ecx), %edx Thread 6: EXC_BAD_ACCESS (code=2 address=0xcc) 
+0

在哪一行你会崩溃?什么样的代码的崩溃? – stosha

+0

您需要向我们展示更多代码。 'NSURL'是表示URL的类。它不会尝试任何形式的网络连接,除非您专门要求使用专用API。因此,如果用户恰好处于离线状态,则不会返回“nil”。很明显,你的代码会继续对有问题的URL做些什么;请给我们详细的代码 –

回答

1

你在做什么,如果该对象仅检查url是否为NULL指针。如果你想检查一个用户是否有互联网连接,我建议尝试Reachability类,这可以很容易地在网上找到。 This对我来说非常有用。

+0

请不要这样做。您几乎可以肯定地想在*之前尝试某种连接,然后*向用户显示错误 –

0

建议您检查互联网的可用性,如果您正在开发苹果的互联网连接要求的应用程序,他们也提供.h和.m文件,即Reachability.h和Reachability.m所以请下载该文件和导入到你的项目中,有一个名为“internetConnectionStatus”参数,并通过数值使用以下警报

if (internetConnectionStatus == NotReachable) 
{ 
    UIAlertView *responseAlert = [[UIAlertView alloc] initWithTitle:@"Network Error" 
                  message:@"This application requires network connectivity." 
                  delegate:self 
                cancelButtonTitle:@"Exit" 
                otherButtonTitles:@"Continue", nil]; 
    [responseAlert show]; 


} 
else 
{ //do other stuff here 
} 

你可以找到的可达性文件Here,你可以从GitHub 使用任何可达性文件ThnQ

相关问题