Ios if/else中未使用的变量警告
我正在尝试编写变量requestURL。但是,我希望它的值不同,具体取决于request methodName的值。然而,当我使用下面的代码时,我得到一个错误声明 “警告”:未使用的变量'requestURL'。我在这里做错了什么Ios if/else中未使用的变量警告,ios,objective-c,if-statement,nsstring,Ios,Objective C,If Statement,Nsstring,我正在尝试编写变量requestURL。但是,我希望它的值不同,具体取决于request methodName的值。然而,当我使用下面的代码时,我得到一个错误声明 “警告”:未使用的变量'requestURL'。我在这里做错了什么 您没有做错什么-它只是警告您没有使用requestURL变量 也许你想做这样的事情: NSString *requestUrl = nil; if ([[request methodName] isEqualToString:@"getTargets"]) {
您没有做错什么-它只是警告您没有使用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]
我猜您希望在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]];
}
考虑执行
if
或else
块时会发生什么情况。requestUrl
超出范围,从未使用过
您可能要做的是在
if
语句之前声明requestUrl
,然后在if/else
中赋值,编译器不知道NSString*requestUrl
在if
中被取消引诱
因此,您应该使用空字符串在
if
语句的范围之外声明requestUrl字符串,并在if
语句中附加所需的值。变量声明仅持续到所包含的{}
为止。
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]];
}