Два других ответа верны в том смысле, что они отвечают на вопрос так, как вы его задали. Но по вашему описанию того, что вы хотите сделать, есть гораздо более простой способ. Используйте формат.
Если предположить, что string1
и string3
всегда будут одинаковыми, и только string2
изменится, то есть то, что вы делаете, вы можете написать что-то вроде этого.
static NSString *formatString = @"String1Text%@String3Text";
NSString *completeString = [NSString stringWithFormat:formatString,self.myTextFieldName.text];
NSLog(@"%@",completeString);
%@
в формате говорит, что нужно вставить описание объекта в следующем формате (описание NSString
- это stringValue
.)
Предполагая, что у вас есть UITextField
с именем myTextFieldName
, который в настоящее время содержит текст 'String2Text
' Тогда это будет вывод:
String1TextString2TextString3Text
Таким образом вы создаете только 1 экземпляр формата NSString для всего класса, независимо от того, сколько раз вы вызываете этот код.
Для меня это звучит так, как будто вам вообще не нужна изменяемая строка. Не стесняйтесь оставлять комментарии, если я что-то не так понял.
Ответ на комментарий:
Я не уверен, как вы реализуете "шаги, чтобы проверить его снова", но, скажем, у вас есть кнопка с именем 'testJavaScript'. Метод IBAction, связанный с этой кнопкой, будет содержать первые две строки. Таким образом, каждый раз, когда вы нажимаете кнопку, создается новая отформатированная строка NSString, заполненная текущим содержимым текстового поля. Как только эта строка была сформирована, ее нельзя было изменить. Но это не будет иметь значения, так как в следующий раз получится еще один.