objective-c如果NSURL失败则显示UIAlertView

时间:2013-07-13 02:27:53

标签: uialertview

我有这样的NSURL:

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];
}

我做错了什么?

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

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

旁边是一个带有这个突出显示的窗口

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

2 个答案:

答案 0 :(得分:1)

您正在执行的操作仅检查对象url是否为NULL指针。如果您想检查用户是否有互联网连接,我建议您尝试Reachability课程,这些课程可以在线轻松找到。 This一个对我非常有用。

答案 1 :(得分:0)

如果您正在开发Apple的具有互联网连接要求的应用程序,建议检查Internet可用性,并且他们还提供.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的任何Reachability文件 ThnQ