2013-12-12 39 views
-2

我试图编写变量requestURL。不过,我希望它的值不同,具体取决于request methodName的值。当我使用下面但是代码,我得到一个错误,说明if/else中未使用的变量警告

“警告”:?未使用的变量“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]]; 
} 
+0

一个变量声明只会持续到封闭的'{}'。 –

回答

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

我猜你喜欢保持requestUrl你的if/else语句后:

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]]; 
} 
+0

这个伎俩,谢谢! –

0

考虑要么ifelse块被执行时会发生什么。 requestUrl变得范围,从未使用过。

是什么,你可能想要做的就是之前宣布requestUrlif语句,然后分配在if/else

1

编译器不知道declured的ifNSString *requestUrl

因此,你应该申报if语句空字符串的范围之外requestUrl字符串,并追加if内所需的值。