我在Objective C中相对较新,但与编程无关。我想知道如何将一个NSString附加到另一个NSString上。我正在创建一个用户必须完成基本句子的应用程序,我想知道如何获取用户输入的字符串并将其附加到屏幕上的当前字符串中?
答案 0 :(得分:45)
我认为你正在寻找NSString的stringByAppendingString函数。 请参阅下面的示例。
NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];
生成字符串“错误:文件过早结束。”。
答案 1 :(得分:32)
这也可以通过使用 NSMutableString :
来实现NSMutableString *string = [NSMutableString stringWithString:@"String 1"];
[string appendString:@"String 2"];
答案 2 :(得分:13)
看起来你有答案,但你也可以使用stringWithFormat:
方法:
NSString *sample1 = @"Hello";
NSString *sample2 = @"Being appended";
NSString *complete = [NSString stringWithFormat:@"%@%@", sample1,
sample2];
答案 3 :(得分:5)
您无法真正将一个NSString附加到另一个NSString,因为类NSString不可变。所有标准数据结构都具有可变和非可变变量(NSMutableString vs NSString,NSMutableArray vs NSArray等)。如果要在不重新分配新对象的情况下更改内容,则需要使用可变版本。您可以使用以下命令重新创建新的NSString:
NSString* string3 = [NSString stringWithFormat:@"%@%@",string1,string2];
这对性能有害,所以如果你要在一个循环或一些性能敏感区域(即你一遍又一遍地追加相同的字符串)这样做,这肯定会引起你的问题(我之前犯了这个错误。)
相反,您可能应该使用NSMutableString并将第二个字符串附加到它:
NSMutableString* string1 = [NSMutableString alloc] init];
[string1 appendString:string2];