0

複数の文字列を 1 行に連結するより良い方法はありますか? または、これを行う際のアドバイス。

NSString *string1 = @"one";
NSString *string2 = @"one";
NSString *string3 = @"one";
NSString *appendedText = @"";

[appendedText = [[string1 stringByAppendingString: string2] stringByAppendingString: string3]
4

2 に答える 2

1

安全で適切ですか?もちろん。

あなたが持っているとしましょう:

NSString *a = @"hay";
NSString *b = @"bee";
NSString *c = @"see";

stringByAppendingString:それらをすべて連結するために使用できます。

cat = [a stringByAppendingString:[b stringByAppendingString:c]];

stringByAppendingFormat:それらをすべて連結するために使用できます。

cat = [a stringByAppendingFormat:@"%@%@", b, c];

使用できますstringWithFormat:

cat = [NSString stringWithFormat:@"%@%@%@", a, b, c];

それらを配列に入れて、 : を使用できcomponentsJoinedByString:ます (楽しみのために、配列リテラル構文を使用します)

array = @[ a, b, c];
cat = [array componentsJoinedByString:@""];

それらを変更可能な文字列で収集できます。

NSMutableString *temp = [a mutableCopy];
[temp appendString:b];
[temp appendString:b];
cat = [temp copy]; // if you want to make sure result is immutable

これらの方法はすべてOKです。使用するものを選択するための私のアドバイスは次のとおりです。

  1. コードが明確で読みやすいものを使用してください。
  2. アプリが正常に動作したら、Instruments を使用してプロファイリングします。
  3. 文字列の連結がパフォーマンスの問題を引き起こしていることがわかった場合にのみ、別の方法を検討してください。
于 2012-08-24T17:14:26.143 に答える
0

使用できますstringByAppendingFormat:

[string1 stringByAppendingFormat:@"%@%@",string2,string3]

ここに参照があります

NSMutableStringもありますが、構文に関してはほぼ同じに見えます

ダニエル

于 2012-08-24T16:56:57.797 に答える