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