我对Objective C相对陌生,但对编程并不陌生。我想知道如何将一个NSString添加到另一个NSString上。我正在制作一个应用程序,在该应用程序中,用户必须完成一个基本句子,我想知道如何获取用户输入的字符串并将其附加到当前显示在屏幕上的字符串上?
我对Objective C相对陌生,但对编程并不陌生。我想知道如何将一个NSString添加到另一个NSString上。我正在制作一个应用程序,在该应用程序中,用户必须完成一个基本句子,我想知道如何获取用户输入的字符串并将其附加到当前显示在屏幕上的字符串上?
我认为你正在寻找NSString的stringByAppendingString函数。 请参考下面的示例。
NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];
生成字符串“Error: premature end of file.”。
也可以使用NSMutableString来实现:
NSMutableString *string = [NSMutableString stringWithString:@"String 1"];
[string appendString:@"String 2"];
看起来你已经有了答案,但你也可以使用stringWithFormat:
方法,像这样:
NSString *sample1 = @"Hello";
NSString *sample2 = @"Being appended";
NSString *complete = [NSString stringWithFormat:@"%@%@", sample1,
sample2];
你无法真正将一个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];
NSMutableString
是实际解决方案。当您想要在同一变量中追加数据时,stringByAppendingString
不太友好于内存。 - Ans