安全和适当?当然。
假设你有:
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 literal syntax)
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
所有这些方法都可以。以下是我选择使用的建议:
- 使用任何一种都可以使您的代码清晰易读。
- 当您的应用正常运行时,使用 Instruments 对其进行分析。
-
只有当您发现字符串连接导致性能问题时,才考虑使用不同的方法。