目标C:初始化NSString

时间:2012-11-04 17:04:07

标签: objective-c nsstring

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

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

但是,我得到了“使用未声明的标识符'outputString'”错误。有什么更好的方法呢?

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

3 个答案:

答案 0 :(得分:4)

怎么样?

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

您需要了解scope

更短的版本:

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

它被称为ternary condition

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

}
return outputString;