0

NSURL *url在一系列 else if 中定义变量,其中不可能有错误,所以它总是会被定义(我可以稍后添加错误捕获以防万一)。

这是一种可怕的做法,但我对这门语言相当陌生。

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;它运行但说它没有连接到互联网。

4

2 回答 2

1

对于未定义的问题,您必须NSUrl *url在 if/else 之外声明:

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

我认为未连接的问题与该代码无关。

于 2013-04-12T14:16:41.133 回答
1

if在and子句中声明的局部变量else if仅在这些范围内可见,因此您不能在 last 之后使用它们else if。通过在它NSURL *url;之前声明if它将在最后一个之后可见,else if因为它在同一范围内。

“未连接到互联网”错误可能与此代码无关。可能您的设备/模拟器没有连接。

于 2013-04-12T14:17:27.317 回答