Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios if/else中未使用的变量警告_Ios_Objective C_If Statement_Nsstring - Fatal编程技术网

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

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。但是,我希望它的值不同,具体取决于request methodName的值。然而,当我使用下面的代码时,我得到一个错误声明

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


您没有做错什么-它只是警告您没有使用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]];
}