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 に答える