0

我有这样的 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)
4

2 回答 2

1

您所做的仅检查对象url是否为NULL指针。如果您想检查用户是否有互联网连接,我建议您尝试这些Reachability课程,这些课程很容易在网上找到。这个对我很有用。

于 2013-07-13T02:33:26.417 回答
0

如果您正在开发具有 Internet 连接要求的 Apple 应用程序,并且他们还提供了 .h 和 .m 文件,即 Reachability.h 和 Reachability.m,建议您检查 Internet 可用性,因此请下载该文件并导入到您的项目并且有一个名为“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
}

你可以在这里找到可达性文件,你可以使用来自 github ThnQ 的任何可达性文件

于 2013-08-06T08:25:06.823 回答