2013-12-12 65 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內所需的值。