stringByAppendingFormat, не работающий

Я имею NSString и не удаюсь применить следующее утверждение:

NSString *myString = @"some text";
[myString stringByAppendingFormat:@"some text = %d", 3];

никакой журнал или ошибка, строка просто не становится измененной. Я уже попробовал NSString (как зарегистрировано) и NSMutableString.

любые приветствующиеся подсказки.

12
задан Quinn Taylor 13 May 2010 в 04:27
поделиться

3 ответа

Я бы предложил исправить ( документация ):

NSString *myString = @"some text";
myString = [myString stringByAppendingFormat:@" = %d", 3];

Из документации:

Возвращает строку, полученную путем добавления к получателю созданной строки из заданной строки формата и следующих аргументов.

36
ответ дан 2 December 2019 в 02:59
поделиться

Это работает, вы просто игнорируете возвращаемое значение, которое представляет собой строку с добавленным форматом. (См. документацию .) Вы не можете изменить NSString - чтобы изменить NSMutableString, используйте вместо этого -appendFormat: .

Конечно, в вашем игрушечном примере вы могли бы сократить его до следующего:

NSString *myString = [NSString stringWithFormat:@"some text = %d", 3];

Однако вполне вероятно, что вам нужно добавить строку формата к существующей строке, созданной в другом месте. В этом случае, особенно если вы добавляете несколько частей, хорошо подумать и сбалансировать плюсы и минусы использования изменяемой строки или нескольких неизменяемых, автоматически выпускаемых строк.

12
ответ дан 2 December 2019 в 02:59
поделиться

Создание строк с помощью @ "" всегда приводит к неизменяемым строкам. Если вы хотите создать новую NSMutableString, сделайте это следующим образом.

NSMutableString *myString = [NSMutableString stringWithString:@"some text"];
[myString appendFormat:@"some text = %d", 3];
11
ответ дан 2 December 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: