我有一个简单的代码块,需要将NSString设置为一个或另一个。在它最基本的形式中,它看起来像这样:
if (conditionMet){
NSString *outputString=[NSString stringWithString:@"A"];
} else {
NSString *outputString=[NSString stringWithString:@"B"];
}
return outputString;
但是,我得到了“使用未声明的标识符'outputString'”错误。有什么更好的方法呢?
我知道这是一个非常基本的问题,因此任何关于如何做到这一点的快速指示都会非常棒。谢谢你的阅读。
答案 0 :(得分:4)
怎么样?
NSString *outputString;
if (conditionMet){
outputString=@"A";
} else {
outputString=@"B";
}
return outputString;
您需要了解scope
更短的版本:
return conditionMet ? @"A" : @"B" ;
答案 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;