Подтвердить что ты не робот

Как добавить NSString на другой NSString

Я относительно новичок в Objective C, но не с программированием. Мне было интересно, как вы можете добавить один NSString на другой. Я делаю приложение, в котором пользователь должен завершить базовое предложение, и мне было интересно, как получить строку, которую пользователь вводил, и добавить ее на текущую, которая находится на экране?

4b9b3361

Ответ 1

Я думаю, что вы ищете функцию stringByAppendingString для NSString. См. Пример ниже.

NSString *errorTag = @"Error: ";
NSString *errorString = @"premature end of file.";
NSString *errorMessage = [errorTag stringByAppendingString:errorString];

создает строку "Ошибка: преждевременный конец файла".

Ответ 2

Это также может быть достигнуто с помощью NSMutableString:

NSMutableString *string = [NSMutableString stringWithString:@"String 1"];
[string appendString:@"String 2"];

Ответ 3

Похоже, у вас есть ответ, но вы также можете использовать метод stringWithFormat::

NSString *sample1 = @"Hello"; 
NSString *sample2 = @"Being appended";

NSString *complete = [NSString stringWithFormat:@"%@%@", sample1,
sample2];

Ответ 4

Вы не можете по-настоящему добавить один NSString к другому, потому что класс NSString не изменен. Все стандартные структуры данных имеют изменяемые и не изменяемые разновидности (NSMutableString vs NSString, NSMutableArray vs NSArray и т.д.). Если вы хотите изменить содержимое без перераспределения нового объекта, вы захотите использовать изменчивую версию. Вы можете воссоздать новый NSString, используя:

NSString* string3 = [NSString stringWithFormat:@"%@%@",string1,string2];

Это плохо для производительности, поэтому, если вы собираетесь делать это в цикле или некоторой области, чувствительной к производительности (т.е. вы продолжаете добавлять одну и ту же строку снова и снова), это гарантированно приведет к возникновению проблемы (I уже сделали эту ошибку).

Вместо этого вы, вероятно, должны использовать NSMutableString и добавить к ней вторую строку:

NSMutableString* string1 = [NSMutableString alloc] init];
[string1 appendString:string2];