我在一系列其他地方定义变量NSURL *url
,如果没有错误,那么它将始终被定义(我可以稍后添加错误捕获以防万一)。
这是一种可怕的做法,但对于这种语言来说还是比较新的。
if (whatTime == @"1000") {
NSURL *url = [NSURL URLWithString:@"http://yyy/json.php?f=1&time=1000"];
}else if(whatTime == @"1100"){
NSURL *url = [NSURL URLWithString:@"http://yyy/json.php?f=1"];
}else if(whatTime == @"1100"){
NSURL *url = [NSURL URLWithString:@"http://yyy/json.php?f=1"];
}
但调试器告诉我url未定义。有办法解决这个问题吗?
当我这样做时(在ifs的地狱之上)NSURL *url;
它会运行,但表示它没有连接到互联网。
答案 0 :(得分:1)
对于未定义的问题,您必须在if / elses之外声明NSUrl *url
:
NSURL *url = nil;
if (whatTime == @"1000") {
url = [NSURL URLWithString:@"http://yyy/json.php?f=1&time=1000"];
}else if(whatTime == @"1100"){
url = [NSURL URLWithString:@"http://yyy/json.php?f=1"];
}else if(whatTime == @"1100"){
url = [NSURL URLWithString:@"http://yyy/json.php?f=1"];
}
我认为未连接的问题与该代码无关。
答案 1 :(得分:1)
在if
和else if
子句中声明的局部变量仅在这些范围内可见,因此您不能在最后else if
之后使用它们。通过在NSURL *url;
之前声明if
,它会在最后else if
之后显示,因为它位于同一范围内。
“未连接到互联网”错误可能与此代码无关。可能你的设备/模拟器没有连接。