if / else中未使用的变量警告

时间:2013-12-12 16:52:04

标签: ios objective-c if-statement nsstring

我正在尝试编写变量requestURL。但是我希望它的值不同,具体取决于请求methodName的值。但是当我使用下面的代码时,我收到一条错误说明

  

“警告”:未使用的变量'requestURL'“。我在这里做错了什么?

if ([[request methodName] isEqualToString:@"getTargets"]) {
    NSString *TMPrequestUrl = [addressSSL stringByAppendingString:[request methodName]];
    NSString *trailingSlash = @"/";
    NSString *requestUrl = [TMPrequestUrl stringByAppendingString:trailingSlash];
}
else{
    NSString *requestUrl = [addressSSL stringByAppendingString:[request methodName]];
}

4 个答案:

答案 0 :(得分:2)

我想你想在if / else语句之后保留requestUrl:

NSString *requestUrl = nil;
if ([[request methodName] isEqualToString:@"getTargets"]) {
    NSString *TMPrequestUrl = [addressSSL stringByAppendingString:[request methodName]];
    NSString *trailingSlash = @"/";
    requestUrl = [TMPrequestUrl stringByAppendingString:trailingSlash];
}
else{
    requestUrl = [addressSSL stringByAppendingString:[request methodName]];
}

答案 1 :(得分:1)

您没有做错任何事 - 它只是警告您没有使用requestURL变量。

可能你想做类似的事情:

NSString *requestUrl = nil;
if ([[request methodName] isEqualToString:@"getTargets"]) {
    NSString *TMPrequestUrl = [addressSSL stringByAppendingString:[request methodName]];
    NSString *trailingSlash = @"/";
    requestUrl = [TMPrequestUrl stringByAppendingString:trailingSlash];
}
else{
    requestUrl = [addressSSL stringByAppendingString:[request methodName]];
}

//use requestUrl here
// [self someMethod:requestUrl]

答案 2 :(得分:1)

编译器不知道NSString *requestUrl内的if已崩溃,

因此,您应该使用空字符串在if语句的范围之外声明requestUrl字符串,并在if内附加所需的值。

答案 3 :(得分:0)

考虑执行ifelse块时会发生什么。 requestUrl范围广泛,从未使用过。

您可能要做的是在 requestUrl语句之前声明if ,然后在if/else中分配。