0

我有一个简单的代码块,需要将 NSString 设置为一件事或另一件事。在它的最基本形式中,它看起来像这样:

if (conditionMet){
   NSString *outputString=[NSString stringWithString:@"A"];
} else {
   NSString *outputString=[NSString stringWithString:@"B"];
}
return outputString;

但是,我收到“使用未声明的标识符‘outputString’”错误。有什么更好的方法来做到这一点?

我知道这是一个非常基本的问题,所以任何关于如何做到这一点的快速指示都会很棒。谢谢阅读。

4

3 回答 3

4

关于什么 ?

NSString *outputString;
if (conditionMet){
   outputString=@"A";
} else {
   outputString=@"B";
}
return outputString;

你需要了解范围

较短的版本:

return conditionMet ? @"A" : @"B" ;

这叫做三元条件

于 2012-11-04T17:06:44.633 回答
0

这是因为您在 if else 块中声明和定义它。它们是本地的,ARC 将在块结束时释放它们。

这样做的方法是在 if-else 块之外声明它。您可以只定义其中的字符串,并且在其末尾仍然有一个有效的 NSString 对象。

于 2012-11-04T17:08:32.527 回答
0
NSString *outputString 
if (conditionMet){
  outputString=[NSString stringWithString:@"A"];
} else {
  outputString=[NSString stringWithString:@"B"];

}
return outputString;      
于 2012-11-04T17:09:35.893 回答